All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL v2 00/37] Staging patches
@ 2017-09-09  5:45 Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 01/37] docker: ensure NOUSER for travis images Fam Zheng
                   ` (37 more replies)
  0 siblings, 38 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The following changes since commit fcea73709b966a7ded9efa7b106ea50c7fe9025c:

  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2017-09-08 16:04:42 +0100)

are available in the git repository at:

  git://github.com/famz/qemu.git tags/staging-pull-request

for you to fetch changes up to 734e2410b1c14a4cf17b1500bda1dcc7e7e57cfc:

  buildsys: Move rdma libs to per object (2017-09-09 11:55:51 +0800)

----------------------------------------------------------------

v2: Drop opengl flags patch.
    Change the new scripts' licenses to GPLv2+.

----------------------------------------------------------------

Alex Bennée (4):
  docker: ensure NOUSER for travis images
  docker: docker.py make --no-cache skip checksum test
  docker: don't install device-tree-compiler build-deps in travis.docker
  docker: reduce noise when building travis.docker

Fam Zheng (33):
  docker: Update ubuntu image
  docker: Enable features explicitly in test-full
  tests/docker: Clean up paths
  gitignore: Ignore vm test images
  qemu.py: Add "wait()" method
  scripts: Add archive-source.sh
  tests: Add vm test lib
  tests: Add ubuntu.i386 image
  tests: Add FreeBSD image
  tests: Add NetBSD image
  tests: Add OpenBSD image
  Makefile: Add rules to run vm tests
  MAINTAINERS: Add tests/vm entry
  tests: Add README for vm tests
  docker: Use archive-source.py
  docker: Fix return code of build_qemu()
  docker: Add test_fail and prep_fail
  docker: Use unconfined security profile
  docker: Add nettle-devel to fedora image
  docker: Add test-block
  docker: Drop 'set -e' from run script
  vl: Don't include vde header
  buildsys: Move vde libs to per object
  buildsys: Move gtk/vte cflags/libs to per object
  buildsys: Move sdl cflags/libs to per object
  buildsys: Move vnc cflags/libs to per object
  buildsys: Move audio libs to per object
  buildsys: Move curese cflags/libs to per object
  buildsys: Move libcacard cflags/libs to per object
  buildsys: Move libusb cflags/libs to per object
  buildsys: Move usb redir cflags/libs to per object
  buildsys: Move brlapi libs to per object
  buildsys: Move rdma libs to per object

 .gitignore                             |   1 +
 MAINTAINERS                            |   1 +
 Makefile                               |   2 +
 audio/Makefile.objs                    |   6 +
 chardev/Makefile.objs                  |   1 +
 configure                              |  61 ++++----
 hw/usb/Makefile.objs                   |  13 +-
 migration/Makefile.objs                |   1 +
 net/Makefile.objs                      |   2 +
 scripts/archive-source.sh              |  31 ++++
 scripts/qemu.py                        |   7 +
 tests/.gitignore                       |   1 +
 tests/docker/Makefile.include          |  17 +-
 tests/docker/common.rc                 |  20 ++-
 tests/docker/docker.py                 |   3 +-
 tests/docker/dockerfiles/fedora.docker |   1 +
 tests/docker/dockerfiles/travis.docker |   6 +-
 tests/docker/dockerfiles/ubuntu.docker |  11 +-
 tests/docker/run                       |  18 +--
 tests/docker/test-block                |  21 +++
 tests/docker/test-full                 |  82 +++++++++-
 tests/vm/Makefile.include              |  42 +++++
 tests/vm/README                        |  63 ++++++++
 tests/vm/basevm.py                     | 276 +++++++++++++++++++++++++++++++++
 tests/vm/freebsd                       |  42 +++++
 tests/vm/netbsd                        |  42 +++++
 tests/vm/openbsd                       |  43 +++++
 tests/vm/ubuntu.i386                   |  88 +++++++++++
 ui/Makefile.objs                       |  29 ++--
 vl.c                                   |   4 -
 30 files changed, 850 insertions(+), 85 deletions(-)
 create mode 100755 scripts/archive-source.sh
 create mode 100755 tests/docker/test-block
 create mode 100644 tests/vm/Makefile.include
 create mode 100644 tests/vm/README
 create mode 100755 tests/vm/basevm.py
 create mode 100755 tests/vm/freebsd
 create mode 100755 tests/vm/netbsd
 create mode 100755 tests/vm/openbsd
 create mode 100755 tests/vm/ubuntu.i386

-- 
2.13.5

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

* [Qemu-devel] [PULL v2 01/37] docker: ensure NOUSER for travis images
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 02/37] docker: docker.py make --no-cache skip checksum test Fam Zheng
                   ` (36 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

While adding the current user is a useful default behaviour for
creating new images it is not appropriate for Travis which already has
a default user.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20170725133425.436-2-alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/Makefile.include | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index aaab1a4208..d7dafdbd27 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -71,6 +71,7 @@ docker-image-debian-ppc64el-cross: docker-image-debian9
 docker-image-debian-s390x-cross: docker-image-debian9
 docker-image-debian-win32-cross: docker-image-debian8-mxe
 docker-image-debian-win64-cross: docker-image-debian8-mxe
+docker-image-travis: NOUSER=1
 
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(DOCKER_IMAGES), \
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 02/37] docker: docker.py make --no-cache skip checksum test
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 01/37] docker: ensure NOUSER for travis images Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 03/37] docker: don't install device-tree-compiler build-deps in travis.docker Fam Zheng
                   ` (35 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

If you invoke with NOCACHE=1 we pass --no-cache in the argv to
docker.py but may still not force a rebuild if the dockerfile checksum
hasn't changed. By testing for its presence we can force builds
without having to manually remove the docker image.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170725133425.436-5-alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/docker.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 81c87ee329..08122ca17d 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -263,7 +263,8 @@ class BuildCommand(SubCommand):
         tag = args.tag
 
         dkr = Docker()
-        if dkr.image_matches_dockerfile(tag, dockerfile):
+        if "--no-cache" not in argv and \
+           dkr.image_matches_dockerfile(tag, dockerfile):
             if not args.quiet:
                 print "Image is up to date."
         else:
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 03/37] docker: don't install device-tree-compiler build-deps in travis.docker
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 01/37] docker: ensure NOUSER for travis images Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 02/37] docker: docker.py make --no-cache skip checksum test Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 04/37] docker: reduce noise when building travis.docker Fam Zheng
                   ` (34 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

Installing the device-tree-compiler build-deps is a little extreme. We
only actually need the binary so include it with the other packages.

Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170725133425.436-6-alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/travis.docker | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index 636fa590a5..57ac8e1419 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -1,6 +1,5 @@
 FROM quay.io/travisci/travis-ruby
 RUN apt-get update
 RUN apt-get -y build-dep qemu
-RUN apt-get -y build-dep device-tree-compiler
-RUN apt-get -y install python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
+RUN apt-get -y install device-tree-compiler python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
 ENV FEATURES pyyaml
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 04/37] docker: reduce noise when building travis.docker
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (2 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 03/37] docker: don't install device-tree-compiler build-deps in travis.docker Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 05/37] docker: Update ubuntu image Fam Zheng
                   ` (33 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

From: Alex Bennée <alex.bennee@linaro.org>

Set the DEBIAN_FRONTEND and locale env vars to stop apt complaining so
much as we build the image.

Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20170725133425.436-7-alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/travis.docker | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index 57ac8e1419..605b6e429b 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -1,4 +1,7 @@
 FROM quay.io/travisci/travis-ruby
+ENV DEBIAN_FRONTEND noninteractive
+ENV LANG en_US.UTF-8
+ENV LC_ALL en_US.UTF-8
 RUN apt-get update
 RUN apt-get -y build-dep qemu
 RUN apt-get -y install device-tree-compiler python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 05/37] docker: Update ubuntu image
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (3 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 04/37] docker: reduce noise when building travis.docker Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 06/37] docker: Enable features explicitly in test-full Fam Zheng
                   ` (32 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Base on the newer ubuntu-lts (16.06) and include more packages for
better build coverage.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907141245.31946-2-famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/ubuntu.docker | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tests/docker/dockerfiles/ubuntu.docker b/tests/docker/dockerfiles/ubuntu.docker
index a360a050a2..d73ce02246 100644
--- a/tests/docker/dockerfiles/ubuntu.docker
+++ b/tests/docker/dockerfiles/ubuntu.docker
@@ -1,12 +1,17 @@
-FROM ubuntu:14.04
+FROM ubuntu:16.04
 RUN echo "deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse" >> \
     /etc/apt/sources.list
 RUN apt-get update
 ENV PACKAGES flex bison \
-    libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev \
+    libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev libncursesw5-dev \
     libseccomp-dev libgnutls-dev libssh2-1-dev  libspice-server-dev \
     libspice-protocol-dev libnss3-dev libfdt-dev \
-    libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev \
+    libgtk-3-dev libvte-2.91-dev libsdl1.2-dev libpng12-dev libpixman-1-dev \
+    libvdeplug-dev liblzo2-dev libsnappy-dev libbz2-dev libxen-dev librdmacm-dev libibverbs-dev \
+    libsasl2-dev libjpeg-turbo8-dev xfslibs-dev libcap-ng-dev libbrlapi-dev libcurl4-gnutls-dev \
+    libbluetooth-dev librbd-dev libaio-dev glusterfs-common libnuma-dev libepoxy-dev libdrm-dev libgbm-dev \
+    libjemalloc-dev libcacard-dev libusbredirhost-dev libnfs-dev libcap-dev libattr1-dev \
+    texinfo \
     git make ccache python-yaml gcc clang sparse
 RUN apt-get -y install $PACKAGES
 RUN dpkg -l $PACKAGES | sort > /packages.txt
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 06/37] docker: Enable features explicitly in test-full
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (4 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 05/37] docker: Update ubuntu image Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 07/37] tests/docker: Clean up paths Fam Zheng
                   ` (31 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Also avoid "set -e".

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907141245.31946-3-famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/test-full | 82 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 76 insertions(+), 6 deletions(-)

diff --git a/tests/docker/test-full b/tests/docker/test-full
index 05f0d491d1..d71bf9d275 100755
--- a/tests/docker/test-full
+++ b/tests/docker/test-full
@@ -1,8 +1,8 @@
-#!/bin/bash -e
+#!/bin/bash
 #
-# Compile all the targets.
+# Compile all the targets with as many features enabled as possible
 #
-# Copyright (c) 2016 Red Hat Inc.
+# Copyright 2016, 2017 Red Hat Inc.
 #
 # Authors:
 #  Fam Zheng <famz@redhat.com>
@@ -13,7 +13,77 @@
 
 . common.rc
 
-cd "$BUILD_DIR"
+cd "$BUILD_DIR" || exit 1
 
-build_qemu
-make check $MAKEFLAGS
+build_qemu \
+    --enable-attr \
+    --enable-bluez \
+    --enable-brlapi \
+    --enable-bsd-user \
+    --enable-bzip2 \
+    --enable-cap-ng \
+    --enable-coroutine-pool \
+    --enable-crypto-afalg \
+    --enable-curl \
+    --enable-curses \
+    --enable-debug \
+    --enable-debug-info \
+    --enable-debug-tcg \
+    --enable-docs \
+    --enable-fdt \
+    --enable-gcrypt \
+    --enable-glusterfs \
+    --enable-gnutls \
+    --enable-gprof \
+    --enable-gtk \
+    --enable-guest-agent \
+    --enable-jemalloc \
+    --enable-kvm \
+    --enable-libiscsi \
+    --enable-libnfs \
+    --enable-libssh2 \
+    --enable-libusb \
+    --enable-linux-aio \
+    --enable-linux-user \
+    --enable-live-block-migration \
+    --enable-lzo \
+    --enable-modules \
+    --enable-numa \
+    --enable-opengl \
+    --enable-pie \
+    --enable-profiler \
+    --enable-qom-cast-debug \
+    --enable-rbd \
+    --enable-rdma \
+    --enable-replication \
+    --enable-sdl \
+    --enable-seccomp \
+    --enable-smartcard \
+    --enable-snappy \
+    --enable-spice \
+    --enable-stack-protector \
+    --enable-system \
+    --enable-tcg \
+    --enable-tcg-interpreter \
+    --enable-tools \
+    --enable-tpm \
+    --enable-trace-backend=ftrace \
+    --enable-usb-redir \
+    --enable-user \
+    --enable-vde \
+    --enable-vhost-net \
+    --enable-vhost-scsi \
+    --enable-vhost-user \
+    --enable-vhost-vsock \
+    --enable-virtfs \
+    --enable-vnc \
+    --enable-vnc-jpeg \
+    --enable-vnc-png \
+    --enable-vnc-sasl \
+    --enable-vte \
+    --enable-werror \
+    --enable-xen \
+    --enable-xen-pci-passthrough \
+    --enable-xen-pv-domain-build \
+    --enable-xfsctl \
+&& make check $MAKEFLAGS
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 07/37] tests/docker: Clean up paths
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (5 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 06/37] docker: Enable features explicitly in test-full Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 08/37] gitignore: Ignore vm test images Fam Zheng
                   ` (30 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The 'run' script already creats src, build and install directories under
$TEST_DIR, use it in common.rc.

Also the tests always run from $QEMU_SRC/tests/docker, so use a relative
$CMD string.

Message-Id: <20170817035721.11064-1-famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/common.rc | 5 +----
 tests/docker/run       | 4 +++-
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 6865689bb5..64b36ba2d0 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -11,9 +11,6 @@
 # or (at your option) any later version. See the COPYING file in
 # the top-level directory.
 
-BUILD_DIR=/var/tmp/qemu-build
-mkdir $BUILD_DIR
-
 requires()
 {
     for c in $@; do
@@ -28,7 +25,7 @@ build_qemu()
 {
     config_opts="--enable-werror \
                  ${TARGET_LIST:+--target-list=${TARGET_LIST}} \
-                 --prefix=$PWD/install \
+                 --prefix=$INSTALL_DIR \
                  $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \
                  $@"
     echo "Configure options:"
diff --git a/tests/docker/run b/tests/docker/run
index c1e4513bce..ec2541cbd9 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -52,10 +52,12 @@ if test -n "$SHOW_ENV"; then
 fi
 
 export QEMU_SRC="$TEST_DIR/src"
+export BUILD_DIR="$TEST_DIR/build"
+export INSTALL_DIR="$TEST_DIR/install"
 
 cd "$QEMU_SRC/tests/docker"
 
-CMD="$QEMU_SRC/tests/docker/$@"
+CMD="./$@"
 
 if test -z "$DEBUG"; then
     exec $CMD
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 08/37] gitignore: Ignore vm test images
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (6 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 07/37] tests/docker: Clean up paths Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 09/37] qemu.py: Add "wait()" method Fam Zheng
                   ` (29 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-2-famz@redhat.com>
---
 .gitignore       | 1 +
 tests/.gitignore | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.gitignore b/.gitignore
index cf65316863..40acfcb9e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,6 +52,7 @@
 /vscclient
 /vhost-user-scsi
 /fsdev/virtfs-proxy-helper
+*.tmp
 *.[1-9]
 *.a
 *.aux
diff --git a/tests/.gitignore b/tests/.gitignore
index fed0189a5a..cf6d99c91e 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -95,3 +95,4 @@ test-filter-mirror
 test-filter-redirector
 *-test
 qapi-schema/*.test.*
+vm/*.img
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 09/37] qemu.py: Add "wait()" method
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (7 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 08/37] gitignore: Ignore vm test images Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh Fam Zheng
                   ` (28 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20170905021201.25684-3-famz@redhat.com>
---
 scripts/qemu.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/qemu.py b/scripts/qemu.py
index 4d8ee10943..99963053a5 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -157,6 +157,13 @@ class QEMUMachine(object):
             self._post_shutdown()
             raise
 
+    def wait(self):
+        '''Wait for the VM to power off'''
+        self._popen.wait()
+        self._qmp.close()
+        self._load_io_log()
+        self._post_shutdown()
+
     def shutdown(self):
         '''Terminate the VM and clean up'''
         if self.is_running():
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (8 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 09/37] qemu.py: Add "wait()" method Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09 12:07   ` Peter Maydell
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 11/37] tests: Add vm test lib Fam Zheng
                   ` (27 subsequent siblings)
  37 siblings, 1 reply; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-4-famz@redhat.com>
---
 scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100755 scripts/archive-source.sh

diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
new file mode 100755
index 0000000000..1de369532e
--- /dev/null
+++ b/scripts/archive-source.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Author: Fam Zheng <famz@redhat.com>
+#
+# Create archive of source tree, including submodules
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+
+set -e
+
+if test $# -lt 1; then
+    echo "Usage: $0 <output>"
+    exit 1
+fi
+
+submodules=$(git submodule foreach --recursive --quiet 'echo $name')
+
+if test -n "$submodules"; then
+    {
+        git ls-files
+        for sm in $submodules; do
+            (cd $sm; git ls-files) | sed "s:^:$sm/:"
+        done
+    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > $1.list
+else
+    git ls-files > $1.list
+fi
+
+tar -cf $1 -T $1.list
+rm $1.list
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 11/37] tests: Add vm test lib
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (9 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 12/37] tests: Add ubuntu.i386 image Fam Zheng
                   ` (26 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

This is the common code to implement a "VM test" to

  1) Download and initialize a pre-defined VM that has necessary
  dependencies to build QEMU and SSH access.

  2) Archive $SRC_PATH to a .tar file.

  3) Boot the VM, and pass the source tar file to the guest.

  4) SSH into the VM, untar the source tarball, build from the source.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-5-famz@redhat.com>
---
 tests/vm/basevm.py | 276 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 276 insertions(+)
 create mode 100755 tests/vm/basevm.py

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
new file mode 100755
index 0000000000..3fa695c5a2
--- /dev/null
+++ b/tests/vm/basevm.py
@@ -0,0 +1,276 @@
+#!/usr/bin/env python
+#
+# VM testing base class
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import logging
+import time
+import datetime
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "scripts"))
+from qemu import QEMUMachine
+import subprocess
+import hashlib
+import optparse
+import atexit
+import tempfile
+import shutil
+import multiprocessing
+import traceback
+
+SSH_KEY = """\
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAopAuOlmLV6LVHdFBj8/eeOwI9CqguIJPp7eAQSZvOiB4Ag/R
+coEhl/RBbrV5Yc/SmSD4PTpJO/iM10RwliNjDb4a3I8q3sykRJu9c9PI/YsH8WN9
++NH2NjKPtJIcKTu287IM5JYxyB6nDoOzILbTyJ1TDR/xH6qYEfBAyiblggdjcvhA
+RTf93QIn39F/xLypXvT1K2O9BJEsnJ8lEUvB2UXhKo/JTfSeZF8wPBeowaP9EONk
+7b+nuJOWHGg68Ji6wVi62tjwl2Szch6lxIhZBpnV7QNRKMfYHP6eIyF4pusazzZq
+Telsq6xI2ghecWLzb/MF5A+rklsGx2FNuJSAJwIDAQABAoIBAHHi4o/8VZNivz0x
+cWXn8erzKV6tUoWQvW85Lj/2RiwJvSlsnYZDkx5af1CpEE2HA/pFT8PNRqsd+MWC
+7AEy710cVsM4BYerBFYQaYxwzblaoojo88LSjVPw3h5Z0iLM8+IMVd36nwuc9dpE
+R8TecMZ1+U4Tl6BgqkK+9xToZRdPKdjS8L5MoFhGN+xY0vRbbJbGaV9Q0IHxLBkB
+rEBV7T1mUynneCHRUQlJQEwJmKpT8MH3IjsUXlG5YvnuuvcQJSNTaW2iDLxuOKp8
+cxW8+qL88zpb1D5dppoIu6rlrugN0azSq70ruFJQPc/A8GQrDKoGgRQiagxNY3u+
+vHZzXlECgYEA0dKO3gfkSxsDBb94sQwskMScqLhcKhztEa8kPxTx6Yqh+x8/scx3
+XhJyOt669P8U1v8a/2Al+s81oZzzfQSzO1Q7gEwSrgBcRMSIoRBUw9uYcy02ngb/
+j/ng3DGivfJztjjiSJwb46FHkJ2JR8mF2UisC6UMXk3NgFY/3vWQx78CgYEAxlcG
+T3hfSWSmTgKRczMJuHQOX9ULfTBIqwP5VqkkkiavzigGRirzb5lgnmuTSPTpF0LB
+XVPjR2M4q+7gzP0Dca3pocrvLEoxjwIKnCbYKnyyvnUoE9qHv4Kr+vDbgWpa2LXG
+JbLmE7tgTCIp20jOPPT4xuDvlbzQZBJ5qCQSoZkCgYEAgrotSSihlCnAOFSTXbu4
+CHp3IKe8xIBBNENq0eK61kcJpOxTQvOha3sSsJsU4JAM6+cFaxb8kseHIqonCj1j
+bhOM/uJmwQJ4el/4wGDsbxriYOBKpyq1D38gGhDS1IW6kk3erl6VAb36WJ/OaGum
+eTpN9vNeQWM4Jj2WjdNx4QECgYAwTdd6mU1TmZCrJRL5ZG+0nYc2rbMrnQvFoqUi
+BvWiJovggHzur90zy73tNzPaq9Ls2FQxf5G1vCN8NCRJqEEjeYCR59OSDMu/EXc2
+CnvQ9SevHOdS1oEDEjcCWZCMFzPi3XpRih1gptzQDe31uuiHjf3cqcGPzTlPdfRt
+D8P92QKBgC4UaBvIRwREVJsdZzpIzm224Bpe8LOmA7DeTnjlT0b3lkGiBJ36/Q0p
+VhYh/6cjX4/iuIs7gJbGon7B+YPB8scmOi3fj0+nkJAONue1mMfBNkba6qQTc6Y2
+5mEKw2/O7/JpND7ucU3OK9plcw/qnrWDgHxl0Iz95+OzUIIagxne
+-----END RSA PRIVATE KEY-----
+"""
+SSH_PUB_KEY = """\
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCikC46WYtXotUd0UGPz9547Aj0KqC4gk+nt4BBJm86IHgCD9FygSGX9EFutXlhz9KZIPg9Okk7+IzXRHCWI2MNvhrcjyrezKREm71z08j9iwfxY3340fY2Mo+0khwpO7bzsgzkljHIHqcOg7MgttPInVMNH/EfqpgR8EDKJuWCB2Ny+EBFN/3dAiff0X/EvKle9PUrY70EkSycnyURS8HZReEqj8lN9J5kXzA8F6jBo/0Q42Ttv6e4k5YcaDrwmLrBWLra2PCXZLNyHqXEiFkGmdXtA1Eox9gc/p4jIXim6xrPNmpN6WyrrEjaCF5xYvNv8wXkD6uSWwbHYU24lIAn qemu-vm-key
+"""
+
+class BaseVM(object):
+    GUEST_USER = "qemu"
+    GUEST_PASS = "qemupass"
+    ROOT_PASS = "qemupass"
+
+    # The script to run in the guest that builds QEMU
+    BUILD_SCRIPT = ""
+    # The guest name, to be overridden by subclasses
+    name = "#base"
+    def __init__(self, debug=False, vcpus=None):
+        self._guest = None
+        self._tmpdir = tempfile.mkdtemp(prefix="vm-test-", suffix=".tmp", dir=".")
+        atexit.register(shutil.rmtree, self._tmpdir)
+
+        self._ssh_key_file = os.path.join(self._tmpdir, "id_rsa")
+        open(self._ssh_key_file, "w").write(SSH_KEY)
+        subprocess.check_call(["chmod", "600", self._ssh_key_file])
+
+        self._ssh_pub_key_file = os.path.join(self._tmpdir, "id_rsa.pub")
+        open(self._ssh_pub_key_file, "w").write(SSH_PUB_KEY)
+
+        self.debug = debug
+        self._stderr = sys.stderr
+        self._devnull = open("/dev/null", "w")
+        if self.debug:
+            self._stdout = sys.stdout
+        else:
+            self._stdout = self._devnull
+        self._args = [ \
+            "-nodefaults", "-m", "2G",
+            "-cpu", "host",
+            "-netdev", "user,id=vnet,hostfwd=:0.0.0.0:0-:22",
+            "-device", "virtio-net-pci,netdev=vnet",
+            "-vnc", ":0,to=20",
+            "-serial", "file:%s" % os.path.join(self._tmpdir, "serial.out")]
+        if vcpus:
+            self._args += ["-smp", str(vcpus)]
+        if os.access("/dev/kvm", os.R_OK | os.W_OK):
+            self._args += ["-enable-kvm"]
+        else:
+            logging.info("KVM not available, not using -enable-kvm")
+        self._data_args = []
+
+    def _download_with_cache(self, url, sha256sum=None):
+        def check_sha256sum(fname):
+            if not sha256sum:
+                return True
+            checksum = subprocess.check_output(["sha256sum", fname]).split()[0]
+            return sha256sum == checksum
+
+        cache_dir = os.path.expanduser("~/.cache/qemu-vm/download")
+        if not os.path.exists(cache_dir):
+            os.makedirs(cache_dir)
+        fname = os.path.join(cache_dir, hashlib.sha1(url).hexdigest())
+        if os.path.exists(fname) and check_sha256sum(fname):
+            return fname
+        logging.debug("Downloading %s to %s...", url, fname)
+        subprocess.check_call(["wget", "-c", url, "-O", fname + ".download"],
+                              stdout=self._stdout, stderr=self._stderr)
+        os.rename(fname + ".download", fname)
+        return fname
+
+    def _ssh_do(self, user, cmd, check, interactive=False):
+        ssh_cmd = ["ssh", "-q",
+                   "-o", "StrictHostKeyChecking=no",
+                   "-o", "UserKnownHostsFile=/dev/null",
+                   "-o", "ConnectTimeout=1",
+                   "-p", self.ssh_port, "-i", self._ssh_key_file]
+        if interactive:
+            ssh_cmd += ['-t']
+        assert not isinstance(cmd, str)
+        ssh_cmd += ["%s@127.0.0.1" % user] + list(cmd)
+        logging.debug("ssh_cmd: %s", " ".join(ssh_cmd))
+        r = subprocess.call(ssh_cmd,
+                            stdin=sys.stdin if interactive else self._devnull,
+                            stdout=sys.stdout if interactive else self._stdout,
+                            stderr=sys.stderr if interactive else self._stderr)
+        if check and r != 0:
+            raise Exception("SSH command failed: %s" % cmd)
+        return r
+
+    def ssh(self, *cmd):
+        return self._ssh_do(self.GUEST_USER, cmd, False)
+
+    def ssh_interactive(self, *cmd):
+        return self._ssh_do(self.GUEST_USER, cmd, False, True)
+
+    def ssh_root(self, *cmd):
+        return self._ssh_do("root", cmd, False)
+
+    def ssh_check(self, *cmd):
+        self._ssh_do(self.GUEST_USER, cmd, True)
+
+    def ssh_root_check(self, *cmd):
+        self._ssh_do("root", cmd, True)
+
+    def build_image(self, img):
+        raise NotImplementedError
+
+    def add_source_dir(self, src_dir):
+        name = "data-" + hashlib.sha1(src_dir).hexdigest()[:5]
+        tarfile = os.path.join(self._tmpdir, name + ".tar")
+        logging.debug("Creating archive %s for src_dir dir: %s", tarfile, src_dir)
+        subprocess.check_call(["./scripts/archive-source.sh", tarfile],
+                              cwd=src_dir, stdin=self._devnull,
+                              stdout=self._stdout, stderr=self._stderr)
+        self._data_args += ["-drive",
+                            "file=%s,if=none,id=%s,cache=writeback,format=raw" % \
+                                    (tarfile, name),
+                            "-device",
+                            "virtio-blk,drive=%s,serial=%s,bootindex=1" % (name, name)]
+
+    def boot(self, img, extra_args=[]):
+        args = self._args + [
+            "-device", "VGA",
+            "-drive", "file=%s,if=none,id=drive0,cache=writeback" % img,
+            "-device", "virtio-blk,drive=drive0,bootindex=0"]
+        args += self._data_args + extra_args
+        logging.debug("QEMU args: %s", " ".join(args))
+        guest = QEMUMachine(binary=os.environ.get("QEMU", "qemu-system-x86_64"),
+                            args=args)
+        guest.launch()
+        atexit.register(self.shutdown)
+        self._guest = guest
+        usernet_info = guest.qmp("human-monitor-command",
+                                 command_line="info usernet")
+        self.ssh_port = None
+        for l in usernet_info["return"].splitlines():
+            fields = l.split()
+            if "TCP[HOST_FORWARD]" in fields and "22" in fields:
+                self.ssh_port = l.split()[3]
+        if not self.ssh_port:
+            raise Exception("Cannot find ssh port from 'info usernet':\n%s" % \
+                            usernet_info)
+
+    def wait_ssh(self, seconds=120):
+        starttime = datetime.datetime.now()
+        guest_up = False
+        while (datetime.datetime.now() - starttime).total_seconds() < seconds:
+            if self.ssh("exit 0") == 0:
+                guest_up = True
+                break
+            time.sleep(1)
+        if not guest_up:
+            raise Exception("Timeout while waiting for guest ssh")
+
+    def shutdown(self):
+        self._guest.shutdown()
+
+    def wait(self):
+        self._guest.wait()
+
+    def qmp(self, *args, **kwargs):
+        return self._guest.qmp(*args, **kwargs)
+
+def parse_args(vm_name):
+    parser = optparse.OptionParser(description="""
+    VM test utility.  Exit codes: 0 = success, 1 = command line error, 2 = environment initialization failed, 3 = test command failed""")
+    parser.add_option("--debug", "-D", action="store_true",
+                      help="enable debug output")
+    parser.add_option("--image", "-i", default="%s.img" % vm_name,
+                      help="image file name")
+    parser.add_option("--force", "-f", action="store_true",
+                      help="force build image even if image exists")
+    parser.add_option("--jobs", type=int, default=multiprocessing.cpu_count() / 2,
+                      help="number of virtual CPUs")
+    parser.add_option("--build-image", "-b", action="store_true",
+                      help="build image")
+    parser.add_option("--build-qemu",
+                      help="build QEMU from source in guest")
+    parser.add_option("--interactive", "-I", action="store_true",
+                      help="Interactively run command")
+    parser.disable_interspersed_args()
+    return parser.parse_args()
+
+def main(vmcls):
+    try:
+        args, argv = parse_args(vmcls.name)
+        if not argv and not args.build_qemu and not args.build_image:
+            print "Nothing to do?"
+            return 1
+        if args.debug:
+            logging.getLogger().setLevel(logging.DEBUG)
+        vm = vmcls(debug=args.debug, vcpus=args.jobs)
+        if args.build_image:
+            if os.path.exists(args.image) and not args.force:
+                sys.stderr.writelines(["Image file exists: %s\n" % args.image,
+                                      "Use --force option to overwrite\n"])
+                return 1
+            return vm.build_image(args.image)
+        if args.build_qemu:
+            vm.add_source_dir(args.build_qemu)
+            cmd = [vm.BUILD_SCRIPT.format(
+                   configure_opts = " ".join(argv),
+                   jobs=args.jobs)]
+        else:
+            cmd = argv
+        vm.boot(args.image + ",snapshot=on")
+        vm.wait_ssh()
+    except Exception as e:
+        if isinstance(e, SystemExit) and e.code == 0:
+            return 0
+        sys.stderr.write("Failed to prepare guest environment\n")
+        traceback.print_exc()
+        return 2
+
+    if args.interactive:
+        if vm.ssh_interactive(*cmd) == 0:
+            return 0
+        vm.ssh_interactive()
+        return 3
+    else:
+        if vm.ssh(*cmd) != 0:
+            return 3
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 12/37] tests: Add ubuntu.i386 image
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (10 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 11/37] tests: Add vm test lib Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 13/37] tests: Add FreeBSD image Fam Zheng
                   ` (25 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

This adds a 32bit guest.

The official LTS cloud image is downloaded and initialized with
cloud-init.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-6-famz@redhat.com>
---
 tests/vm/ubuntu.i386 | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)
 create mode 100755 tests/vm/ubuntu.i386

diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386
new file mode 100755
index 0000000000..e70dcb89ce
--- /dev/null
+++ b/tests/vm/ubuntu.i386
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+#
+# Ubuntu i386 image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+import time
+
+class UbuntuX86VM(basevm.BaseVM):
+    name = "ubuntu.i386"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d);
+        sudo chmod a+r /dev/vdb;
+        tar -xf /dev/vdb;
+        ./configure {configure_opts};
+        make -j{jobs};
+        make check;
+    """
+
+    def _gen_cloud_init_iso(self):
+        cidir = self._tmpdir
+        mdata = open(os.path.join(cidir, "meta-data"), "w")
+        mdata.writelines(["instance-id: ubuntu-vm-0\n",
+                         "local-hostname: ubuntu-guest\n"])
+        mdata.close()
+        udata = open(os.path.join(cidir, "user-data"), "w")
+        udata.writelines(["#cloud-config\n",
+                          "chpasswd:\n",
+                          "  list: |\n",
+                          "    root:%s\n" % self.ROOT_PASS,
+                          "    %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
+                          "  expire: False\n",
+                          "users:\n",
+                          "  - name: %s\n" % self.GUEST_USER,
+                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
+                          "    ssh-authorized-keys:\n",
+                          "    - %s\n" % basevm.SSH_PUB_KEY,
+                          "  - name: root\n",
+                          "    ssh-authorized-keys:\n",
+                          "    - %s\n" % basevm.SSH_PUB_KEY])
+        udata.close()
+        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
+                               "-volid", "cidata", "-joliet", "-rock",
+                               "user-data", "meta-data"],
+                               cwd=cidir,
+                               stdin=self._devnull, stdout=self._stdout,
+                               stderr=self._stdout)
+        return os.path.join(cidir, "cloud-init.iso")
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-i386-disk1.img")
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp])
+        subprocess.check_call(["qemu-img", "resize", img_tmp, "50G"])
+        self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
+        self.wait_ssh()
+        self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
+        self.ssh_root_check("apt-get update")
+        self.ssh_root_check("apt-get install -y cloud-initramfs-growroot")
+        # Don't check the status in case the guest hang up too quickly
+        self.ssh_root("sync && reboot")
+        time.sleep(5)
+        self.wait_ssh()
+        # The previous update sometimes doesn't survive a reboot, so do it again
+        self.ssh_root_check("apt-get update")
+        self.ssh_root_check("apt-get build-dep -y qemu")
+        self.ssh_root_check("apt-get install -y libfdt-dev")
+        self.ssh_root("poweroff")
+        self.wait()
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+        return 0
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(UbuntuX86VM))
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 13/37] tests: Add FreeBSD image
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (11 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 12/37] tests: Add ubuntu.i386 image Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 14/37] tests: Add NetBSD image Fam Zheng
                   ` (24 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-7-famz@redhat.com>
---
 tests/vm/freebsd | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100755 tests/vm/freebsd

diff --git a/tests/vm/freebsd b/tests/vm/freebsd
new file mode 100755
index 0000000000..039dad8f69
--- /dev/null
+++ b/tests/vm/freebsd
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+#
+# FreeBSD VM image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class FreeBSDVM(basevm.BaseVM):
+    name = "freebsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/vtbd1;
+        ./configure {configure_opts};
+        gmake -j{jobs};
+        gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/freebsd-11.1-amd64.img.xz",
+                sha256sum='adcb771549b37bc63826c501f05121a206ed3d9f55f49145908f7e1432d65891')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(FreeBSDVM))
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 14/37] tests: Add NetBSD image
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (12 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 13/37] tests: Add FreeBSD image Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 15/37] tests: Add OpenBSD image Fam Zheng
                   ` (23 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Kamil Rytarowski <n54@gmx.com>
Message-Id: <20170905021201.25684-8-famz@redhat.com>
---
 tests/vm/netbsd | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100755 tests/vm/netbsd

diff --git a/tests/vm/netbsd b/tests/vm/netbsd
new file mode 100755
index 0000000000..3972d8b45c
--- /dev/null
+++ b/tests/vm/netbsd
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+#
+# NetBSD VM image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class NetBSDVM(basevm.BaseVM):
+    name = "netbsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/rld1a;
+        ./configure --python=python2.7 {configure_opts};
+        gmake -j{jobs};
+        gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz",
+                                         sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(NetBSDVM))
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 15/37] tests: Add OpenBSD image
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (13 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 14/37] tests: Add NetBSD image Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 16/37] Makefile: Add rules to run vm tests Fam Zheng
                   ` (22 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-9-famz@redhat.com>
---
 tests/vm/openbsd | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100755 tests/vm/openbsd

diff --git a/tests/vm/openbsd b/tests/vm/openbsd
new file mode 100755
index 0000000000..6ae16d97fd
--- /dev/null
+++ b/tests/vm/openbsd
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+#
+# OpenBSD VM image
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class OpenBSDVM(basevm.BaseVM):
+    name = "openbsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/rsd1c;
+        ./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 --python=python2.7 {configure_opts};
+        gmake -j{jobs};
+        # XXX: "gmake check" seems to always hang or fail
+        #gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/openbsd-6.1-amd64.img.xz",
+                sha256sum='8c6cedc483e602cfee5e04f0406c64eb99138495e8ca580bc0293bcf0640c1bf')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(OpenBSDVM))
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 16/37] Makefile: Add rules to run vm tests
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (14 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 15/37] tests: Add OpenBSD image Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 17/37] MAINTAINERS: Add tests/vm entry Fam Zheng
                   ` (21 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-10-famz@redhat.com>
---
 Makefile                  |  2 ++
 configure                 |  2 +-
 tests/vm/Makefile.include | 42 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 tests/vm/Makefile.include

diff --git a/Makefile b/Makefile
index 337a1f6f9b..946eb2ce35 100644
--- a/Makefile
+++ b/Makefile
@@ -822,6 +822,7 @@ endif
 -include $(wildcard *.d tests/*.d)
 
 include $(SRC_PATH)/tests/docker/Makefile.include
+include $(SRC_PATH)/tests/vm/Makefile.include
 
 .PHONY: help
 help:
@@ -845,6 +846,7 @@ help:
 	@echo  'Test targets:'
 	@echo  '  check           - Run all tests (check-help for details)'
 	@echo  '  docker          - Help about targets running tests inside Docker containers'
+	@echo  '  vm-test         - Help about targets running tests inside VM'
 	@echo  ''
 	@echo  'Documentation targets:'
 	@echo  '  html info pdf txt'
diff --git a/configure b/configure
index fd7e3a5e81..3918c47cd8 100755
--- a/configure
+++ b/configure
@@ -6546,7 +6546,7 @@ if test "$ccache_cpp2" = "yes"; then
 fi
 
 # build tree in object directory in case the source is not in the current directory
-DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests"
+DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests tests/vm"
 DIRS="$DIRS docs docs/interop fsdev"
 DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw"
 DIRS="$DIRS roms/seabios roms/vgabios"
diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
new file mode 100644
index 0000000000..5daa2a3b73
--- /dev/null
+++ b/tests/vm/Makefile.include
@@ -0,0 +1,42 @@
+# Makefile for VM tests
+
+.PHONY: vm-build-all
+
+IMAGES := ubuntu.i386 freebsd netbsd openbsd
+IMAGE_FILES := $(patsubst %, tests/vm/%.img, $(IMAGES))
+
+.PRECIOUS: $(IMAGE_FILES)
+
+vm-test:
+	@echo "vm-test: Test QEMU in preconfigured virtual machines"
+	@echo
+	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
+	@echo "  vm-build-freebsd                - Build QEMU in FreeBSD VM"
+	@echo "  vm-build-netbsd                 - Build QEMU in NetBSD VM"
+	@echo "  vm-build-openbsd                - Build QEMU in OpenBSD VM"
+
+vm-build-all: $(addprefix vm-build-, $(IMAGES))
+
+tests/vm/%.img: $(SRC_PATH)/tests/vm/% \
+		$(SRC_PATH)/tests/vm/basevm.py \
+		$(SRC_PATH)/tests/vm/Makefile.include
+	$(call quiet-command, \
+		$< \
+		$(if $(V)$(DEBUG), --debug) \
+		--image "$@" \
+		--force \
+		--build-image $@, \
+		"  VM-IMAGE $*")
+
+
+# Build in VM $(IMAGE)
+vm-build-%: tests/vm/%.img
+	$(call quiet-command, \
+		$(SRC_PATH)/tests/vm/$* \
+		$(if $(V)$(DEBUG), --debug) \
+		$(if $(DEBUG), --interactive) \
+		$(if $(J),--jobs $(J)) \
+		--image "$<" \
+		--build-qemu $(SRC_PATH), \
+		"  VM-BUILD $*")
+
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 17/37] MAINTAINERS: Add tests/vm entry
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (15 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 16/37] Makefile: Add rules to run vm tests Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 18/37] tests: Add README for vm tests Fam Zheng
                   ` (20 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20170905021201.25684-11-famz@redhat.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 36eeb42d19..42f5454311 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1891,6 +1891,7 @@ S: Maintained
 F: .travis.yml
 F: .shippable.yml
 F: tests/docker/
+F: tests/vm/
 W: https://travis-ci.org/qemu/qemu
 W: https://app.shippable.com/github/qemu/qemu
 W: http://patchew.org/QEMU/
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 18/37] tests: Add README for vm tests
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (16 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 17/37] MAINTAINERS: Add tests/vm entry Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 19/37] docker: Use archive-source.py Fam Zheng
                   ` (19 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-12-famz@redhat.com>
---
 tests/vm/README | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 tests/vm/README

diff --git a/tests/vm/README b/tests/vm/README
new file mode 100644
index 0000000000..7d2fe4ac8d
--- /dev/null
+++ b/tests/vm/README
@@ -0,0 +1,63 @@
+=== VM test suite to run build in guests ===
+
+== Intro ==
+
+This test suite contains scripts that bootstrap various guest images that have
+necessary packages to build QEMU. The basic usage is documented in Makefile
+help which is displayed with "make vm-test".
+
+== Quick start ==
+
+Run "make vm-test" to list available make targets.
+
+== Manual invocation ==
+
+Each guest script is an executable script with the same command line options.
+For example to work with the netbsd guest, use $QEMU_SRC/tests/vm/netbsd:
+
+    $ cd $QEMU_SRC/tests/vm
+
+    # To bootstrap the image
+    $ ./netbsd --build-image --image /var/tmp/netbsd.img
+    <...>
+
+    # To run an arbitrary command in guest (the output will not be echoed unless
+    # --debug is added)
+    $ ./netbsd --debug --image /var/tmp/netbsd.img uname -a
+
+    # To build QEMU in guest
+    $ ./netbsd --debug --image /var/tmp/netbsd.img --build-qemu $QEMU_SRC
+
+    # To get to an interactive shell
+    $ ./netbsd --interactive --image /var/tmp/netbsd.img sh
+
+== Adding new guests ==
+
+Please look at existing guest scripts for how to add new guests.
+
+Most importantly, create a subclass of BaseVM and implement build_image()
+method and define BUILD_SCRIPT, then finally call basevm.main() from the
+script's main().
+
+  - Usually in build_image(), a template image is downloaded from a predefined
+    URL. BaseVM._download_with_cache() takes care of the cache and the
+    checksum, so consider using it.
+
+  - Once the image is downloaded, users, SSH server and QEMU build deps should
+    be set up:
+
+    * Root password set to BaseVM.ROOT_PASS
+    * User BaseVM.GUEST_USER is created, and password set to BaseVM.GUEST_PASS
+    * SSH service is enabled and started on boot, BaseVM.SSH_PUB_KEY is added
+      to authorized_keys of both root and the normal user
+    * DHCP client service is enabled and started on boot, so that it can
+      automatically configure the virtio-net-pci NIC and communicate with QEMU
+      user net (10.0.2.2)
+    * Necessary packages are installed to untar the source tarball and build
+      QEMU
+
+  - Write a proper BUILD_SCRIPT template, which should be a shell script that
+    untars a raw virtio-blk block device, which is the tarball data blob of the
+    QEMU source tree, then configure/build it. Running "make check" is also
+    recommended.
+
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 19/37] docker: Use archive-source.py
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (17 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 18/37] tests: Add README for vm tests Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 20/37] docker: Fix return code of build_qemu() Fam Zheng
                   ` (18 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905021201.25684-13-famz@redhat.com>
---
 tests/docker/Makefile.include | 15 ++-------------
 tests/docker/run              |  8 +-------
 2 files changed, 3 insertions(+), 20 deletions(-)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index d7dafdbd27..4bb02b1bb5 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -17,24 +17,13 @@ DOCKER_TOOLS := travis
 TESTS ?= %
 IMAGES ?= %
 
-# Make archive from git repo $1 to tar.gz $2
-make-archive-maybe = $(if $(wildcard $1/*), \
-	$(call quiet-command, \
-		(cd $1; if git diff-index --quiet HEAD -- &>/dev/null; then \
-			git archive -1 HEAD --format=tar.gz; \
-		else \
-			git archive -1 $$(git stash create) --format=tar.gz; \
-		fi) > $2, \
-		"ARCHIVE","$(notdir $2)"))
-
 CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
 DOCKER_SRC_COPY := docker-src.$(CUR_TIME)
 
 $(DOCKER_SRC_COPY):
 	@mkdir $@
-	$(call make-archive-maybe, $(SRC_PATH), $@/qemu.tgz)
-	$(call make-archive-maybe, $(SRC_PATH)/dtc, $@/dtc.tgz)
-	$(call make-archive-maybe, $(SRC_PATH)/pixman, $@/pixman.tgz)
+	$(call quiet-command, $(SRC_PATH)/scripts/archive-source.sh $@/qemu.tar, \
+		"GEN", "$@/qemu.tar")
 	$(call quiet-command, cp $(SRC_PATH)/tests/docker/run $@/run, \
 		"COPY","RUNNER")
 
diff --git a/tests/docker/run b/tests/docker/run
index ec2541cbd9..52b76e443d 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -32,13 +32,7 @@ export TEST_DIR=/tmp/qemu-test
 mkdir -p $TEST_DIR/{src,build,install}
 
 # Extract the source tarballs
-tar -C $TEST_DIR/src -xzf $BASE/qemu.tgz
-for p in dtc pixman; do
-    if test -f $BASE/$p.tgz; then
-        tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz
-        export FEATURES="$FEATURES $p"
-    fi
-done
+tar -C $TEST_DIR/src -xf $BASE/qemu.tar
 
 if test -n "$SHOW_ENV"; then
     if test -f /packages.txt; then
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 20/37] docker: Fix return code of build_qemu()
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (18 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 19/37] docker: Use archive-source.py Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 21/37] docker: Add test_fail and prep_fail Fam Zheng
                   ` (17 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Without "set -e", the "&&" makes sure that the return code reflects the
result status, and that make only runs if configure succeeds.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-2-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/common.rc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 64b36ba2d0..3b45eb91c6 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -30,6 +30,5 @@ build_qemu()
                  $@"
     echo "Configure options:"
     echo $config_opts
-    $QEMU_SRC/configure $config_opts
-    make $MAKEFLAGS
+    $QEMU_SRC/configure $config_opts && make $MAKEFLAGS
 }
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 21/37] docker: Add test_fail and prep_fail
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (19 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 20/37] docker: Fix return code of build_qemu() Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 22/37] docker: Use unconfined security profile Fam Zheng
                   ` (16 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

They both print a message and exit, but with different status code so
distinguish real test errors from env preparation failures.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-3-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/common.rc | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 3b45eb91c6..87f5263757 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -32,3 +32,15 @@ build_qemu()
     echo $config_opts
     $QEMU_SRC/configure $config_opts && make $MAKEFLAGS
 }
+
+test_fail()
+{
+    echo "$@"
+    exit 1
+}
+
+prep_fail()
+{
+    echo "$@"
+    exit 2
+}
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 22/37] docker: Use unconfined security profile
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (20 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 21/37] docker: Add test_fail and prep_fail Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 23/37] docker: Add nettle-devel to fedora image Fam Zheng
                   ` (15 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Some by default blocked syscalls are required to run tests for example
userfaultfd.

Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-4-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/Makefile.include | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 4bb02b1bb5..0e4f159619 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -135,6 +135,7 @@ docker-run: docker-qemu-src
 	$(call quiet-command,						\
 		$(SRC_PATH)/tests/docker/docker.py run 			\
 			$(if $(NOUSER),,-u $(shell id -u)) -t 		\
+			--security-opt seccomp=unconfined		\
 			$(if $V,,--rm) 					\
 			$(if $(DEBUG),-i,)				\
 			$(if $(NETWORK),$(if $(subst $(NETWORK),,1),--net=$(NETWORK)),--net=none) \
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 23/37] docker: Add nettle-devel to fedora image
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (21 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 22/37] docker: Use unconfined security profile Fam Zheng
@ 2017-09-09  5:45 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 24/37] docker: Add test-block Fam Zheng
                   ` (14 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The LUKS cases in qemu-iotests requires this.

Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-5-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/dockerfiles/fedora.docker | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 4eaa8ed2a5..27e8201c54 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -3,6 +3,7 @@ ENV PACKAGES \
     ccache git tar PyYAML sparse flex bison python2 bzip2 hostname \
     glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel \
     gcc gcc-c++ clang make perl which bc findutils libaio-devel \
+    nettle-devel \
     mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config \
     mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 \
     mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 \
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 24/37] docker: Add test-block
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (22 preceding siblings ...)
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 23/37] docker: Add nettle-devel to fedora image Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 25/37] docker: Drop 'set -e' from run script Fam Zheng
                   ` (13 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-6-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/test-block | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100755 tests/docker/test-block

diff --git a/tests/docker/test-block b/tests/docker/test-block
new file mode 100755
index 0000000000..2ca1ce54f6
--- /dev/null
+++ b/tests/docker/test-block
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Run block test cases
+#
+# Copyright 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This code is licensed under the GPL version 2 or later.  See
+# the COPYING file in the top-level directory.
+
+. ./common.rc
+
+cd "$BUILD_DIR"
+
+build_qemu --target-list=x86_64-softmmu
+cd tests/qemu-iotests
+for t in raw qcow2 nbd luks; do
+    ./check -g quick -$t || test_fail "Test failed: iotests $t"
+done
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 25/37] docker: Drop 'set -e' from run script
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (23 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 24/37] docker: Add test-block Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 26/37] vl: Don't include vde header Fam Zheng
                   ` (12 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170905025614.579-7-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Based-on: 20170905021201.25684-1-famz@redhat.com
---
 tests/docker/run | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/tests/docker/run b/tests/docker/run
index 52b76e443d..c8f940de15 100755
--- a/tests/docker/run
+++ b/tests/docker/run
@@ -1,4 +1,4 @@
-#!/bin/bash -e
+#!/bin/bash
 #
 # Docker test runner
 #
@@ -11,8 +11,6 @@
 # or (at your option) any later version. See the COPYING file in
 # the top-level directory.
 
-set -e
-
 if test -n "$V"; then
     set -x
 fi
@@ -20,7 +18,7 @@ fi
 BASE="$(dirname $(readlink -e $0))"
 
 # Prepare the environment
-. /etc/profile || true
+. /etc/profile
 export PATH=/usr/lib/ccache:$PATH
 
 if test -n "$J"; then
@@ -32,7 +30,7 @@ export TEST_DIR=/tmp/qemu-test
 mkdir -p $TEST_DIR/{src,build,install}
 
 # Extract the source tarballs
-tar -C $TEST_DIR/src -xf $BASE/qemu.tar
+tar -C $TEST_DIR/src -xf $BASE/qemu.tar || prep_fail "Failed to untar source"
 
 if test -n "$SHOW_ENV"; then
     if test -f /packages.txt; then
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 26/37] vl: Don't include vde header
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (24 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 25/37] docker: Drop 'set -e' from run script Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 27/37] buildsys: Move vde libs to per object Fam Zheng
                   ` (11 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Nothing in vl.c uses anything from the vde package, do remove the
unnecessary include.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907083552.17725-2-famz@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 vl.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/vl.c b/vl.c
index fb1f05b937..7187e6c350 100644
--- a/vl.c
+++ b/vl.c
@@ -31,10 +31,6 @@
 #include "sysemu/seccomp.h"
 #endif
 
-#if defined(CONFIG_VDE)
-#include <libvdeplug.h>
-#endif
-
 #ifdef CONFIG_SDL
 #if defined(__APPLE__) || defined(main)
 #include <SDL.h>
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 27/37] buildsys: Move vde libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (25 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 26/37] vl: Don't include vde header Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 28/37] buildsys: Move gtk/vte cflags/libs " Fam Zheng
                   ` (10 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907083552.17725-3-famz@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure         | 3 +--
 net/Makefile.objs | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 3918c47cd8..25c6ad6b20 100755
--- a/configure
+++ b/configure
@@ -2953,8 +2953,6 @@ int main(void)
 EOF
   if compile_prog "" "$vde_libs" ; then
     vde=yes
-    libs_softmmu="$vde_libs $libs_softmmu"
-    libs_tools="$vde_libs $libs_tools"
   else
     if test "$vde" = "yes" ; then
       feature_not_found "vde" "Install vde (Virtual Distributed Ethernet) devel"
@@ -5531,6 +5529,7 @@ if test "$slirp" = "yes" ; then
 fi
 if test "$vde" = "yes" ; then
   echo "CONFIG_VDE=y" >> $config_host_mak
+  echo "VDE_LIBS=$vde_libs" >> $config_host_mak
 fi
 if test "$netmap" = "yes" ; then
   echo "CONFIG_NETMAP=y" >> $config_host_mak
diff --git a/net/Makefile.objs b/net/Makefile.objs
index 67ba5e26fb..64adf32f40 100644
--- a/net/Makefile.objs
+++ b/net/Makefile.objs
@@ -21,3 +21,5 @@ tap-obj-$(CONFIG_SOLARIS) = tap-solaris.o
 tap-obj-y ?= tap-stub.o
 common-obj-$(CONFIG_POSIX) += tap.o $(tap-obj-y)
 common-obj-$(CONFIG_WIN32) += tap-win32.o
+
+vde.o-libs = $(VDE_LIBS)
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 28/37] buildsys: Move gtk/vte cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (26 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 27/37] buildsys: Move vde libs to per object Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 29/37] buildsys: Move sdl " Fam Zheng
                   ` (9 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-2-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure        | 3 +--
 ui/Makefile.objs | 4 ++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 25c6ad6b20..8dca32900a 100755
--- a/configure
+++ b/configure
@@ -2427,7 +2427,6 @@ if test "$gtk" != "no"; then
             gtk_cflags="$gtk_cflags $x11_cflags"
             gtk_libs="$gtk_libs $x11_libs"
         fi
-        libs_softmmu="$gtk_libs $libs_softmmu"
         gtk="yes"
     elif test "$gtk" = "yes"; then
         feature_not_found "gtk" "Install gtk3-devel"
@@ -2677,7 +2676,6 @@ if test "$vte" != "no"; then
         vte_cflags=$($pkg_config --cflags $vtepackage)
         vte_libs=$($pkg_config --libs $vtepackage)
         vteversion=$($pkg_config --modversion $vtepackage)
-        libs_softmmu="$vte_libs $libs_softmmu"
         vte="yes"
     elif test "$vte" = "yes"; then
         if test "$gtkabi" = "3.0"; then
@@ -5738,6 +5736,7 @@ fi
 if test "$vte" = "yes" ; then
   echo "CONFIG_VTE=y" >> $config_host_mak
   echo "VTE_CFLAGS=$vte_cflags" >> $config_host_mak
+  echo "VTE_LIBS=$vte_libs" >> $config_host_mak
 fi
 if test "$virglrenderer" = "yes" ; then
   echo "CONFIG_VIRGL=y" >> $config_host_mak
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 3369451285..146a8ce062 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -45,6 +45,10 @@ gtk.o-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS)
 gtk-egl.o-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS)
 gtk-gl-area.o-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS)
 
+gtk.o-libs := $(GTK_LIBS) $(VTE_LIBS)
+gtk-egl.o-libs := $(GTK_LIBS) $(VTE_LIBS)
+gtk-gl-area.o-libs := $(GTK_LIBS) $(VTE_LIBS)
+
 gtk-egl.o-libs += $(OPENGL_LIBS)
 shader.o-libs += $(OPENGL_LIBS)
 console-gl.o-libs += $(OPENGL_LIBS)
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 29/37] buildsys: Move sdl cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (27 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 28/37] buildsys: Move gtk/vte cflags/libs " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 30/37] buildsys: Move vnc " Fam Zheng
                   ` (8 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-3-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 audio/Makefile.objs | 1 +
 configure           | 2 +-
 ui/Makefile.objs    | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index 481d1aa30e..c20695668f 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -11,3 +11,4 @@ common-obj-$(CONFIG_AUDIO_WIN_INT) += audio_win_int.o
 common-obj-y += wavcapture.o
 
 sdlaudio.o-cflags := $(SDL_CFLAGS)
+sdlaudio.o-libs := $(SDL_LIBS)
diff --git a/configure b/configure
index 8dca32900a..a9577bb952 100755
--- a/configure
+++ b/configure
@@ -2793,7 +2793,6 @@ EOF
     sdl_cflags="$sdl_cflags $x11_cflags"
     sdl_libs="$sdl_libs $x11_libs"
   fi
-  libs_softmmu="$sdl_libs $libs_softmmu"
 fi
 
 ##########################################
@@ -5587,6 +5586,7 @@ if test "$sdl" = "yes" ; then
   echo "CONFIG_SDL=y" >> $config_host_mak
   echo "CONFIG_SDLABI=$sdlabi" >> $config_host_mak
   echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
+  echo "SDL_LIBS=$sdl_libs" >> $config_host_mak
 fi
 if test "$cocoa" = "yes" ; then
   echo "CONFIG_COCOA=y" >> $config_host_mak
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 146a8ce062..b3e29e21f0 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -27,6 +27,7 @@ sdl.mo-objs += sdl2-gl.o
 endif
 endif
 sdl.mo-cflags := $(SDL_CFLAGS)
+sdl.mo-libs := $(SDL_LIBS)
 
 ifeq ($(CONFIG_OPENGL),y)
 common-obj-y += shader.o
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 30/37] buildsys: Move vnc cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (28 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 29/37] buildsys: Move sdl " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 31/37] buildsys: Move audio libs " Fam Zheng
                   ` (7 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-4-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure        | 14 ++++++++------
 ui/Makefile.objs | 21 ++++++++++++---------
 2 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/configure b/configure
index a9577bb952..ffc93c7cdb 100755
--- a/configure
+++ b/configure
@@ -2833,8 +2833,8 @@ EOF
   vnc_sasl_libs="-lsasl2"
   if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
     vnc_sasl=yes
-    libs_softmmu="$vnc_sasl_libs $libs_softmmu"
-    QEMU_CFLAGS="$QEMU_CFLAGS $vnc_sasl_cflags"
+    vnc_libs="$vnc_libs $vnc_sasl_libs"
+    vnc_cflags="$vnc_cflags $vnc_sasl_cflags"
   else
     if test "$vnc_sasl" = "yes" ; then
       feature_not_found "vnc-sasl" "Install Cyrus SASL devel"
@@ -2855,8 +2855,8 @@ EOF
     vnc_jpeg_libs="-ljpeg"
   if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
     vnc_jpeg=yes
-    libs_softmmu="$vnc_jpeg_libs $libs_softmmu"
-    QEMU_CFLAGS="$QEMU_CFLAGS $vnc_jpeg_cflags"
+    vnc_libs="$vnc_libs $vnc_jpeg_libs"
+    vnc_cflags="$vnc_cflags $vnc_jpeg_cflags"
   else
     if test "$vnc_jpeg" = "yes" ; then
       feature_not_found "vnc-jpeg" "Install libjpeg-turbo devel"
@@ -2887,8 +2887,8 @@ EOF
   fi
   if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then
     vnc_png=yes
-    libs_softmmu="$vnc_png_libs $libs_softmmu"
-    QEMU_CFLAGS="$QEMU_CFLAGS $vnc_png_cflags"
+    vnc_libs="$vnc_libs $vnc_png_libs"
+    vnc_cflags="$vnc_cflags $vnc_png_cflags"
   else
     if test "$vnc_png" = "yes" ; then
       feature_not_found "vnc-png" "Install libpng devel"
@@ -5552,6 +5552,8 @@ echo "CONFIG_BDRV_RW_WHITELIST=$block_drv_rw_whitelist" >> $config_host_mak
 echo "CONFIG_BDRV_RO_WHITELIST=$block_drv_ro_whitelist" >> $config_host_mak
 if test "$vnc" = "yes" ; then
   echo "CONFIG_VNC=y" >> $config_host_mak
+  echo "VNC_CFLAGS=$vnc_cflags" >> $config_host_mak
+  echo "VNC_LIBS=$vnc_libs" >> $config_host_mak
 fi
 if test "$vnc_sasl" = "yes" ; then
   echo "CONFIG_VNC_SASL=y" >> $config_host_mak
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index b3e29e21f0..a0b3c15a28 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -1,11 +1,14 @@
-vnc-obj-y += vnc.o
-vnc-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
-vnc-obj-y += vnc-enc-tight.o vnc-palette.o
-vnc-obj-y += vnc-enc-zrle.o
-vnc-obj-y += vnc-auth-vencrypt.o
-vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
-vnc-obj-y += vnc-ws.o
-vnc-obj-y += vnc-jobs.o
+vnc.mo-objs += vnc.o
+vnc.mo-objs += vnc-enc-zlib.o vnc-enc-hextile.o
+vnc.mo-objs += vnc-enc-tight.o vnc-palette.o
+vnc.mo-objs += vnc-enc-zrle.o
+vnc.mo-objs += vnc-auth-vencrypt.o
+vnc.mo-objs += $(if $(CONFIG_VNC_SASL), vnc-auth-sasl.o)
+vnc.mo-objs += vnc-ws.o
+vnc.mo-objs += vnc-jobs.o
+
+vnc.mo-cflags := $(VNC_CFLAGS)
+vnc.mo-libs := $(VNC_LIBS)
 
 common-obj-y += keymaps.o console.o cursor.o qemu-pixman.o
 common-obj-y += input.o input-keymap.o input-legacy.o
@@ -14,7 +17,7 @@ common-obj-$(CONFIG_SPICE) += spice-core.o spice-input.o spice-display.o
 common-obj-$(CONFIG_SDL) += sdl.mo x_keymap.o
 common-obj-$(CONFIG_COCOA) += cocoa.o
 common-obj-$(CONFIG_CURSES) += curses.o
-common-obj-$(CONFIG_VNC) += $(vnc-obj-y)
+common-obj-$(CONFIG_VNC) += vnc.mo
 common-obj-$(CONFIG_GTK) += gtk.o x_keymap.o
 
 ifeq ($(CONFIG_SDLABI),1.2)
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 31/37] buildsys: Move audio libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (29 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 30/37] buildsys: Move vnc " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 32/37] buildsys: Move curese cflags/libs " Fam Zheng
                   ` (6 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-5-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 audio/Makefile.objs |  5 +++++
 configure           | 15 ++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index c20695668f..8a5ede6e2b 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -12,3 +12,8 @@ common-obj-y += wavcapture.o
 
 sdlaudio.o-cflags := $(SDL_CFLAGS)
 sdlaudio.o-libs := $(SDL_LIBS)
+alsaaudio.o-libs := $(ALSA_LIBS)
+paaudio.o-libs := $(PULSE_LIBS)
+coreaudio.o-libs := $(COREAUDIO_LIBS)
+dsoundaudio.o-libs := $(DSOUND_LIBS)
+ossaudio.o-libs := $(OSS_LIBS)
diff --git a/configure b/configure
index ffc93c7cdb..5c15e74310 100755
--- a/configure
+++ b/configure
@@ -3037,13 +3037,13 @@ for drv in $audio_drv_list; do
     alsa)
     audio_drv_probe $drv alsa/asoundlib.h -lasound \
         "return snd_pcm_close((snd_pcm_t *)0);"
-    libs_softmmu="-lasound $libs_softmmu"
+    alsa_libs="-lasound"
     ;;
 
     pa)
     audio_drv_probe $drv pulse/pulseaudio.h "-lpulse" \
         "pa_context_set_source_output_volume(NULL, 0, NULL, NULL, NULL); return 0;"
-    libs_softmmu="-lpulse $libs_softmmu"
+    pulse_libs="-lpulse"
     audio_pt_int="yes"
     ;;
 
@@ -3054,16 +3054,16 @@ for drv in $audio_drv_list; do
     ;;
 
     coreaudio)
-      libs_softmmu="-framework CoreAudio $libs_softmmu"
+      coreaudio_libs="-framework CoreAudio"
     ;;
 
     dsound)
-      libs_softmmu="-lole32 -ldxguid $libs_softmmu"
+      dsound_libs="-lole32 -ldxguid"
       audio_win_int="yes"
     ;;
 
     oss)
-      libs_softmmu="$oss_lib $libs_softmmu"
+      oss_libs="$oss_lib"
     ;;
 
     wav)
@@ -5542,6 +5542,11 @@ for drv in $audio_drv_list; do
     def=CONFIG_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
     echo "$def=y" >> $config_host_mak
 done
+echo "ALSA_LIBS=$alsa_libs" >> $config_host_mak
+echo "PULSE_LIBS=$pulse_libs" >> $config_host_mak
+echo "COREAUDIO_LIBS=$coreaudio_libs" >> $config_host_mak
+echo "DSOUND_LIBS=$dsound_libs" >> $config_host_mak
+echo "OSS_LIBS=$oss_libs" >> $config_host_mak
 if test "$audio_pt_int" = "yes" ; then
   echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
 fi
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 32/37] buildsys: Move curese cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (30 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 31/37] buildsys: Move audio libs " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 33/37] buildsys: Move libcacard " Fam Zheng
                   ` (5 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-6-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure        | 6 ++++--
 ui/Makefile.objs | 3 +++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 5c15e74310..88eafe8a10 100755
--- a/configure
+++ b/configure
@@ -3134,8 +3134,8 @@ EOF
       unset IFS
       if compile_prog "$curses_inc" "$curses_lib" ; then
         curses_found=yes
-        QEMU_CFLAGS="$curses_inc $QEMU_CFLAGS"
-        libs_softmmu="$curses_lib $libs_softmmu"
+        curses_cflags="$curses_inc $curses_cflags"
+        curses_libs="$curses_lib $curses_libs"
         break
       fi
     done
@@ -5600,6 +5600,8 @@ if test "$cocoa" = "yes" ; then
 fi
 if test "$curses" = "yes" ; then
   echo "CONFIG_CURSES=y" >> $config_host_mak
+  echo "CURSES_CFLAGS=$curses_cflags" >> $config_host_mak
+  echo "CURSES_LIBS=$curses_libs" >> $config_host_mak
 fi
 if test "$pipe2" = "yes" ; then
   echo "CONFIG_PIPE2=y" >> $config_host_mak
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index a0b3c15a28..e3403b698b 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -57,3 +57,6 @@ gtk-egl.o-libs += $(OPENGL_LIBS)
 shader.o-libs += $(OPENGL_LIBS)
 console-gl.o-libs += $(OPENGL_LIBS)
 egl-helpers.o-libs += $(OPENGL_LIBS)
+
+curses.o-cflags := $(CURSES_CFLAGS)
+curses.o-libs := $(CURSES_LIBS)
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 33/37] buildsys: Move libcacard cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (31 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 32/37] buildsys: Move curese cflags/libs " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 34/37] buildsys: Move libusb " Fam Zheng
                   ` (4 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-8-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure            | 4 ++--
 hw/usb/Makefile.objs | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 88eafe8a10..be50159161 100755
--- a/configure
+++ b/configure
@@ -4235,8 +4235,6 @@ if test "$smartcard" != "no"; then
     if $pkg_config libcacard; then
         libcacard_cflags=$($pkg_config --cflags libcacard)
         libcacard_libs=$($pkg_config --libs libcacard)
-        QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags"
-        libs_softmmu="$libs_softmmu $libcacard_libs"
         smartcard="yes"
     else
         if test "$smartcard" = "yes"; then
@@ -5820,6 +5818,8 @@ fi
 
 if test "$smartcard" = "yes" ; then
   echo "CONFIG_SMARTCARD=y" >> $config_host_mak
+  echo "SMARTCARD_CFLAGS=$libcacard_cflags" >> $config_host_mak
+  echo "SMARTCARD_LIBS=$libcacard_libs" >> $config_host_mak
 fi
 
 if test "$libusb" = "yes" ; then
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 97f1c4561a..795ff25a5e 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -26,8 +26,10 @@ common-obj-$(CONFIG_USB_BLUETOOTH)    += dev-bluetooth.o
 
 ifeq ($(CONFIG_USB_SMARTCARD),y)
 common-obj-y                          += dev-smartcard-reader.o
-common-obj-$(CONFIG_SMARTCARD)        += ccid-card-passthru.o
-common-obj-$(CONFIG_SMARTCARD)        += ccid-card-emulated.o
+common-obj-$(CONFIG_SMARTCARD)        += smartcard.mo
+smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o
+smartcard.mo-cflags := $(SMARTCARD_CFLAGS)
+smartcard.mo-libs := $(SMARTCARD_LIBS)
 endif
 
 ifeq ($(CONFIG_POSIX),y)
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 34/37] buildsys: Move libusb cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (32 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 33/37] buildsys: Move libcacard " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 35/37] buildsys: Move usb redir " Fam Zheng
                   ` (3 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-9-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure            | 4 ++--
 hw/usb/Makefile.objs | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index be50159161..b50d662cde 100755
--- a/configure
+++ b/configure
@@ -4250,8 +4250,6 @@ if test "$libusb" != "no" ; then
         libusb="yes"
         libusb_cflags=$($pkg_config --cflags libusb-1.0)
         libusb_libs=$($pkg_config --libs libusb-1.0)
-        QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags"
-        libs_softmmu="$libs_softmmu $libusb_libs"
     else
         if test "$libusb" = "yes"; then
             feature_not_found "libusb" "Install libusb devel >= 1.0.13"
@@ -5824,6 +5822,8 @@ fi
 
 if test "$libusb" = "yes" ; then
   echo "CONFIG_USB_LIBUSB=y" >> $config_host_mak
+  echo "LIBUSB_CFLAGS=$libusb_cflags" >> $config_host_mak
+  echo "LIBUSB_LIBS=$libusb_libs" >> $config_host_mak
 fi
 
 if test "$usb_redir" = "yes" ; then
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 795ff25a5e..9ce9eadb47 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -42,6 +42,11 @@ common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
 # usb pass-through
 common-obj-y += $(patsubst %,host-%.o,$(HOST_USB))
 
+host-libusb.o-cflags := $(LIBUSB_CFLAGS)
+host-libusb.o-libs := $(LIBUSB_LIBS)
+
 ifeq ($(CONFIG_USB_LIBUSB),y)
 common-obj-$(CONFIG_XEN) += xen-usb.o
+xen-usb.o-cflags := $(LIBUSB_CFLAGS)
+xen-usb.o-libs := $(LIBUSB_LIBS)
 endif
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 35/37] buildsys: Move usb redir cflags/libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (33 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 34/37] buildsys: Move libusb " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 36/37] buildsys: Move brlapi libs " Fam Zheng
                   ` (2 subsequent siblings)
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907082918.7299-10-famz@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure            | 4 ++--
 hw/usb/Makefile.objs | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index b50d662cde..85ea2c25bb 100755
--- a/configure
+++ b/configure
@@ -4264,8 +4264,6 @@ if test "$usb_redir" != "no" ; then
         usb_redir="yes"
         usb_redir_cflags=$($pkg_config --cflags libusbredirparser-0.5)
         usb_redir_libs=$($pkg_config --libs libusbredirparser-0.5)
-        QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
-        libs_softmmu="$libs_softmmu $usb_redir_libs"
     else
         if test "$usb_redir" = "yes"; then
             feature_not_found "usb-redir" "Install usbredir devel"
@@ -5828,6 +5826,8 @@ fi
 
 if test "$usb_redir" = "yes" ; then
   echo "CONFIG_USB_REDIR=y" >> $config_host_mak
+  echo "USB_REDIR_CFLAGS=$usb_redir_cflags" >> $config_host_mak
+  echo "USB_REDIR_LIBS=$usb_redir_libs" >> $config_host_mak
 fi
 
 if test "$opengl" = "yes" ; then
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 9ce9eadb47..92eb199697 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -38,6 +38,8 @@ endif
 
 # usb redirection
 common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
+redirect.o-cflags = $(USB_REDIR_CFLAGS)
+redirect.o-libs = $(USB_REDIR_LIBS)
 
 # usb pass-through
 common-obj-y += $(patsubst %,host-%.o,$(HOST_USB))
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 36/37] buildsys: Move brlapi libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (34 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 35/37] buildsys: Move usb redir " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 37/37] buildsys: Move rdma " Fam Zheng
  2017-09-09  6:14 ` [Qemu-devel] [PULL v2 00/37] Staging patches no-reply
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

baum.o already receives the sdl cflags in its per object variable, do
the same for brlapi libs to avoid cluttering libs_softmmu.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907084700.952-1-famz@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 chardev/Makefile.objs | 1 +
 configure             | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs
index 52a8127606..d68e1347f9 100644
--- a/chardev/Makefile.objs
+++ b/chardev/Makefile.objs
@@ -20,5 +20,6 @@ chardev-obj-$(CONFIG_WIN32) += char-win-stdio.o
 common-obj-y += msmouse.o wctablet.o testdev.o
 common-obj-$(CONFIG_BRLAPI) += baum.o
 baum.o-cflags := $(SDL_CFLAGS)
+baum.o-libs := $(BRLAPI_LIBS)
 
 common-obj-$(CONFIG_SPICE) += spice.o
diff --git a/configure b/configure
index 85ea2c25bb..18f6d0bd5f 100755
--- a/configure
+++ b/configure
@@ -3091,7 +3091,6 @@ int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
 EOF
   if compile_prog "" "$brlapi_libs" ; then
     brlapi=yes
-    libs_softmmu="$brlapi_libs $libs_softmmu"
   else
     if test "$brlapi" = "yes" ; then
       feature_not_found "brlapi" "Install brlapi devel"
@@ -5679,6 +5678,7 @@ if test "$curl" = "yes" ; then
 fi
 if test "$brlapi" = "yes" ; then
   echo "CONFIG_BRLAPI=y" >> $config_host_mak
+  echo "BRLAPI_LIBS=$brlapi_libs" >> $config_host_mak
 fi
 if test "$bluez" = "yes" ; then
   echo "CONFIG_BLUEZ=y" >> $config_host_mak
-- 
2.13.5

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

* [Qemu-devel] [PULL v2 37/37] buildsys: Move rdma libs to per object
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (35 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 36/37] buildsys: Move brlapi libs " Fam Zheng
@ 2017-09-09  5:46 ` Fam Zheng
  2017-09-09  6:14 ` [Qemu-devel] [PULL v2 00/37] Staging patches no-reply
  37 siblings, 0 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170907084230.26493-1-famz@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 configure               | 2 +-
 migration/Makefile.objs | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 18f6d0bd5f..ea54d8b882 100755
--- a/configure
+++ b/configure
@@ -2805,7 +2805,6 @@ EOF
   rdma_libs="-lrdmacm -libverbs"
   if compile_prog "" "$rdma_libs" ; then
     rdma="yes"
-    libs_softmmu="$libs_softmmu $rdma_libs"
   else
     if test "$rdma" = "yes" ; then
         error_exit \
@@ -6028,6 +6027,7 @@ echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
 
 if test "$rdma" = "yes" ; then
   echo "CONFIG_RDMA=y" >> $config_host_mak
+  echo "RDMA_LIBS=$rdma_libs" >> $config_host_mak
 fi
 
 if test "$have_rtnetlink" = "yes" ; then
diff --git a/migration/Makefile.objs b/migration/Makefile.objs
index 1c7770da46..99e038024d 100644
--- a/migration/Makefile.objs
+++ b/migration/Makefile.objs
@@ -11,3 +11,4 @@ common-obj-$(CONFIG_RDMA) += rdma.o
 
 common-obj-$(CONFIG_LIVE_BLOCK_MIGRATION) += block.o
 
+rdma.o-libs := $(RDMA_LIBS)
-- 
2.13.5

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

* Re: [Qemu-devel] [PULL v2 00/37] Staging patches
  2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
                   ` (36 preceding siblings ...)
  2017-09-09  5:46 ` [Qemu-devel] [PULL v2 37/37] buildsys: Move rdma " Fam Zheng
@ 2017-09-09  6:14 ` no-reply
  37 siblings, 0 replies; 45+ messages in thread
From: no-reply @ 2017-09-09  6:14 UTC (permalink / raw)
  To: famz; +Cc: qemu-devel, peter.maydell

Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [Qemu-devel] [PULL v2 00/37] Staging patches
Message-id: 20170909054613.19148-1-famz@redhat.com
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 t [tag update]            patchew/1504815384-8490-1-git-send-email-stefanb@linux.vnet.ibm.com -> patchew/1504815384-8490-1-git-send-email-stefanb@linux.vnet.ibm.com
 t [tag update]            patchew/20170908163859.29820-1-richard.henderson@linaro.org -> patchew/20170908163859.29820-1-richard.henderson@linaro.org
 * [new tag]               patchew/20170909054613.19148-1-famz@redhat.com -> patchew/20170909054613.19148-1-famz@redhat.com
Switched to a new branch 'test'
274b0b33cb buildsys: Move rdma libs to per object
dee13ca0ca buildsys: Move brlapi libs to per object
51486e4caf buildsys: Move usb redir cflags/libs to per object
e2d2141400 buildsys: Move libusb cflags/libs to per object
e653260901 buildsys: Move libcacard cflags/libs to per object
de80133478 buildsys: Move curese cflags/libs to per object
4da943d9c6 buildsys: Move audio libs to per object
c05be913ea buildsys: Move vnc cflags/libs to per object
066db85c1a buildsys: Move sdl cflags/libs to per object
50200dfb4c buildsys: Move gtk/vte cflags/libs to per object
0832346d7d buildsys: Move vde libs to per object
5cad9f269f vl: Don't include vde header
d642c77e93 docker: Drop 'set -e' from run script
05cb7137d9 docker: Add test-block
f829f5d141 docker: Add nettle-devel to fedora image
ca0c6ffecc docker: Use unconfined security profile
c5a6c192c7 docker: Add test_fail and prep_fail
ee94d2b7c9 docker: Fix return code of build_qemu()
0717923a55 docker: Use archive-source.py
b6a02aee1a tests: Add README for vm tests
f0bfdb4c3b MAINTAINERS: Add tests/vm entry
133ce1feb5 Makefile: Add rules to run vm tests
f88480f6c8 tests: Add OpenBSD image
d05508ab23 tests: Add NetBSD image
8370cb8f2f tests: Add FreeBSD image
a8b70bfa3b tests: Add ubuntu.i386 image
413861ba2d tests: Add vm test lib
e10c67002d scripts: Add archive-source.sh
c353b7acd2 qemu.py: Add "wait()" method
fac58fe6c0 gitignore: Ignore vm test images
1022469bf7 tests/docker: Clean up paths
e6dde9693e docker: Enable features explicitly in test-full
f08e8a2903 docker: Update ubuntu image
6c2c01bbe2 docker: reduce noise when building travis.docker
f63179c5a0 docker: don't install device-tree-compiler build-deps in travis.docker
f9d3a9d011 docker: docker.py make --no-cache skip checksum test
3695d96c65 docker: ensure NOUSER for travis images

=== OUTPUT BEGIN ===
Checking PATCH 1/37: docker: ensure NOUSER for travis images...
Checking PATCH 2/37: docker: docker.py make --no-cache skip checksum test...
Checking PATCH 3/37: docker: don't install device-tree-compiler build-deps in travis.docker...
Checking PATCH 4/37: docker: reduce noise when building travis.docker...
Checking PATCH 5/37: docker: Update ubuntu image...
Checking PATCH 6/37: docker: Enable features explicitly in test-full...
Checking PATCH 7/37: tests/docker: Clean up paths...
Checking PATCH 8/37: gitignore: Ignore vm test images...
Checking PATCH 9/37: qemu.py: Add "wait()" method...
Checking PATCH 10/37: scripts: Add archive-source.sh...
Checking PATCH 11/37: tests: Add vm test lib...
ERROR: line over 90 characters
#86: FILE: tests/vm/basevm.py:60:
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCikC46WYtXotUd0UGPz9547Aj0KqC4gk+nt4BBJm86IHgCD9FygSGX9EFutXlhz9KZIPg9Okk7+IzXRHCWI2MNvhrcjyrezKREm71z08j9iwfxY3340fY2Mo+0khwpO7bzsgzkljHIHqcOg7MgttPInVMNH/EfqpgR8EDKJuWCB2Ny+EBFN/3dAiff0X/EvKle9PUrY70EkSycnyURS8HZReEqj8lN9J5kXzA8F6jBo/0Q42Ttv6e4k5YcaDrwmLrBWLra2PCXZLNyHqXEiFkGmdXtA1Eox9gc/p4jIXim6xrPNmpN6WyrrEjaCF5xYvNv8wXkD6uSWwbHYU24lIAn qemu-vm-key

WARNING: line over 80 characters
#100: FILE: tests/vm/basevm.py:74:
+        self._tmpdir = tempfile.mkdtemp(prefix="vm-test-", suffix=".tmp", dir=".")

WARNING: line over 80 characters
#191: FILE: tests/vm/basevm.py:165:
+        logging.debug("Creating archive %s for src_dir dir: %s", tarfile, src_dir)

WARNING: line over 80 characters
#196: FILE: tests/vm/basevm.py:170:
+                            "file=%s,if=none,id=%s,cache=writeback,format=raw" % \

WARNING: line over 80 characters
#199: FILE: tests/vm/basevm.py:173:
+                            "virtio-blk,drive=%s,serial=%s,bootindex=1" % (name, name)]

ERROR: line over 90 characters
#246: FILE: tests/vm/basevm.py:220:
+    VM test utility.  Exit codes: 0 = success, 1 = command line error, 2 = environment initialization failed, 3 = test command failed""")

WARNING: line over 80 characters
#253: FILE: tests/vm/basevm.py:227:
+    parser.add_option("--jobs", type=int, default=multiprocessing.cpu_count() / 2,

total: 2 errors, 5 warnings, 276 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 12/37: tests: Add ubuntu.i386 image...
Checking PATCH 13/37: tests: Add FreeBSD image...
Checking PATCH 14/37: tests: Add NetBSD image...
Checking PATCH 15/37: tests: Add OpenBSD image...
Checking PATCH 16/37: Makefile: Add rules to run vm tests...
Checking PATCH 17/37: MAINTAINERS: Add tests/vm entry...
Checking PATCH 18/37: tests: Add README for vm tests...
Checking PATCH 19/37: docker: Use archive-source.py...
Checking PATCH 20/37: docker: Fix return code of build_qemu()...
Checking PATCH 21/37: docker: Add test_fail and prep_fail...
Checking PATCH 22/37: docker: Use unconfined security profile...
Checking PATCH 23/37: docker: Add nettle-devel to fedora image...
Checking PATCH 24/37: docker: Add test-block...
Checking PATCH 25/37: docker: Drop 'set -e' from run script...
Checking PATCH 26/37: vl: Don't include vde header...
Checking PATCH 27/37: buildsys: Move vde libs to per object...
Checking PATCH 28/37: buildsys: Move gtk/vte cflags/libs to per object...
Checking PATCH 29/37: buildsys: Move sdl cflags/libs to per object...
Checking PATCH 30/37: buildsys: Move vnc cflags/libs to per object...
Checking PATCH 31/37: buildsys: Move audio libs to per object...
Checking PATCH 32/37: buildsys: Move curese cflags/libs to per object...
Checking PATCH 33/37: buildsys: Move libcacard cflags/libs to per object...
Checking PATCH 34/37: buildsys: Move libusb cflags/libs to per object...
Checking PATCH 35/37: buildsys: Move usb redir cflags/libs to per object...
Checking PATCH 36/37: buildsys: Move brlapi libs to per object...
Checking PATCH 37/37: buildsys: Move rdma libs to per object...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org

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

* Re: [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-09  5:45 ` [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh Fam Zheng
@ 2017-09-09 12:07   ` Peter Maydell
  2017-09-09 15:07     ` Fam Zheng
  0 siblings, 1 reply; 45+ messages in thread
From: Peter Maydell @ 2017-09-09 12:07 UTC (permalink / raw)
  To: Fam Zheng; +Cc: QEMU Developers

On 9 September 2017 at 06:45, Fam Zheng <famz@redhat.com> wrote:
> Signed-off-by: Fam Zheng <famz@redhat.com>
> Message-Id: <20170905021201.25684-4-famz@redhat.com>
> ---
>  scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>  create mode 100755 scripts/archive-source.sh
>
> diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
> new file mode 100755
> index 0000000000..1de369532e
> --- /dev/null
> +++ b/scripts/archive-source.sh
> @@ -0,0 +1,31 @@
> +#!/bin/sh
> +#
> +# Author: Fam Zheng <famz@redhat.com>
> +#
> +# Create archive of source tree, including submodules
> +#
> +# This code is licensed under the GPL version 2 or later.  See
> +# the COPYING file in the top-level directory.

So is this the script that for instance Mike Roth would use
to create the release tarballs? If it isn't, should it be?
Is it intended for end users to create tarballs with, or
is it really just a helper script for the docker stuff?
If the latter, it would be helpful to say so. If the former,
it could really use more usage information/documentation...

> +
> +set -e
> +
> +if test $# -lt 1; then
> +    echo "Usage: $0 <output>"
> +    exit 1
> +fi
> +
> +submodules=$(git submodule foreach --recursive --quiet 'echo $name')
> +
> +if test -n "$submodules"; then
> +    {
> +        git ls-files
> +        for sm in $submodules; do
> +            (cd $sm; git ls-files) | sed "s:^:$sm/:"
> +        done
> +    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > $1.list

Supporting '-e something' in a tar -T listfile seems to
be GNU tar specific. Do we care?

> +else
> +    git ls-files > $1.list
> +fi

This will blow up if we ever have a file in the repo
that starts with a '-'. Do we care?

> +
> +tar -cf $1 -T $1.list
> +rm $1.list

This is missing a lot of quoting for $1, so it will go wrong
if there's a space in that filename argument.

thanks
-- PMM

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

* Re: [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-09 12:07   ` Peter Maydell
@ 2017-09-09 15:07     ` Fam Zheng
  2017-09-09 15:08       ` Kamil Rytarowski
  2017-09-09 18:38       ` Peter Maydell
  0 siblings, 2 replies; 45+ messages in thread
From: Fam Zheng @ 2017-09-09 15:07 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

On Sat, 09/09 13:07, Peter Maydell wrote:
> On 9 September 2017 at 06:45, Fam Zheng <famz@redhat.com> wrote:
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> > Message-Id: <20170905021201.25684-4-famz@redhat.com>
> > ---
> >  scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++
> >  1 file changed, 31 insertions(+)
> >  create mode 100755 scripts/archive-source.sh
> >
> > diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
> > new file mode 100755
> > index 0000000000..1de369532e
> > --- /dev/null
> > +++ b/scripts/archive-source.sh
> > @@ -0,0 +1,31 @@
> > +#!/bin/sh
> > +#
> > +# Author: Fam Zheng <famz@redhat.com>
> > +#
> > +# Create archive of source tree, including submodules
> > +#
> > +# This code is licensed under the GPL version 2 or later.  See
> > +# the COPYING file in the top-level directory.
> 
> So is this the script that for instance Mike Roth would use
> to create the release tarballs? If it isn't, should it be?

I don't know the workflow of release tarballs, there is ./scripts/make-release
for that. So this one is not.

> Is it intended for end users to create tarballs with, or
> is it really just a helper script for the docker stuff?
> If the latter, it would be helpful to say so. If the former,
> it could really use more usage information/documentation...

I'm not sure what end users would use this for, but it should do its work just
the same.. What kind of usage information do you suggest? More explaination in
the header, or in the "usage" output when no target is specified, or a "-h"
option for help?

> 
> > +
> > +set -e
> > +
> > +if test $# -lt 1; then
> > +    echo "Usage: $0 <output>"
> > +    exit 1
> > +fi
> > +
> > +submodules=$(git submodule foreach --recursive --quiet 'echo $name')
> > +
> > +if test -n "$submodules"; then
> > +    {
> > +        git ls-files
> > +        for sm in $submodules; do
> > +            (cd $sm; git ls-files) | sed "s:^:$sm/:"
> > +        done
> > +    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > $1.list
> 
> Supporting '-e something' in a tar -T listfile seems to
> be GNU tar specific. Do we care?

The "-e $sm" will go to the grep command line, so it isn't GNU specific, is it?

> 
> > +else
> > +    git ls-files > $1.list
> > +fi
> 
> This will blow up if we ever have a file in the repo
> that starts with a '-'. Do we care?

I'm sure such a file will be a trouble, but I'd rather we deal with it when
there is one: I don't think anyone will think about adding, or welcome such a
file.

> 
> > +
> > +tar -cf $1 -T $1.list
> > +rm $1.list
> 
> This is missing a lot of quoting for $1, so it will go wrong
> if there's a space in that filename argument.

Yes, good point. I will fix it before sending another pull request along with
other comments that are just raised.

Fam

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

* Re: [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-09 15:07     ` Fam Zheng
@ 2017-09-09 15:08       ` Kamil Rytarowski
  2017-09-10  2:05         ` Fam Zheng
  2017-09-09 18:38       ` Peter Maydell
  1 sibling, 1 reply; 45+ messages in thread
From: Kamil Rytarowski @ 2017-09-09 15:08 UTC (permalink / raw)
  To: Fam Zheng, Peter Maydell; +Cc: QEMU Developers

[-- Attachment #1: Type: text/plain, Size: 3211 bytes --]

On 09.09.2017 17:07, Fam Zheng wrote:
> On Sat, 09/09 13:07, Peter Maydell wrote:
>> On 9 September 2017 at 06:45, Fam Zheng <famz@redhat.com> wrote:
>>> Signed-off-by: Fam Zheng <famz@redhat.com>
>>> Message-Id: <20170905021201.25684-4-famz@redhat.com>
>>> ---
>>>  scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++
>>>  1 file changed, 31 insertions(+)
>>>  create mode 100755 scripts/archive-source.sh
>>>
>>> diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
>>> new file mode 100755
>>> index 0000000000..1de369532e
>>> --- /dev/null
>>> +++ b/scripts/archive-source.sh
>>> @@ -0,0 +1,31 @@
>>> +#!/bin/sh
>>> +#
>>> +# Author: Fam Zheng <famz@redhat.com>
>>> +#
>>> +# Create archive of source tree, including submodules
>>> +#
>>> +# This code is licensed under the GPL version 2 or later.  See
>>> +# the COPYING file in the top-level directory.
>>
>> So is this the script that for instance Mike Roth would use
>> to create the release tarballs? If it isn't, should it be?
> 
> I don't know the workflow of release tarballs, there is ./scripts/make-release
> for that. So this one is not.
> 
>> Is it intended for end users to create tarballs with, or
>> is it really just a helper script for the docker stuff?
>> If the latter, it would be helpful to say so. If the former,
>> it could really use more usage information/documentation...
> 
> I'm not sure what end users would use this for, but it should do its work just
> the same.. What kind of usage information do you suggest? More explaination in
> the header, or in the "usage" output when no target is specified, or a "-h"
> option for help?
> 
>>
>>> +
>>> +set -e
>>> +
>>> +if test $# -lt 1; then
>>> +    echo "Usage: $0 <output>"
>>> +    exit 1
>>> +fi
>>> +
>>> +submodules=$(git submodule foreach --recursive --quiet 'echo $name')
>>> +
>>> +if test -n "$submodules"; then
>>> +    {
>>> +        git ls-files
>>> +        for sm in $submodules; do
>>> +            (cd $sm; git ls-files) | sed "s:^:$sm/:"
>>> +        done
>>> +    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > $1.list
>>
>> Supporting '-e something' in a tar -T listfile seems to
>> be GNU tar specific. Do we care?
> 
> The "-e $sm" will go to the grep command line, so it isn't GNU specific, is it?
> 

BSD OSes use GNU grep(1) the latest version GPLv2. There is a work in
progress BSD grep(1), but not turned on by default as it's slower.

The -e option is supported by SmartOS grep(1).

>>
>>> +else
>>> +    git ls-files > $1.list
>>> +fi
>>
>> This will blow up if we ever have a file in the repo
>> that starts with a '-'. Do we care?
> 
> I'm sure such a file will be a trouble, but I'd rather we deal with it when
> there is one: I don't think anyone will think about adding, or welcome such a
> file.
> 
>>
>>> +
>>> +tar -cf $1 -T $1.list
>>> +rm $1.list
>>
>> This is missing a lot of quoting for $1, so it will go wrong
>> if there's a space in that filename argument.
> 
> Yes, good point. I will fix it before sending another pull request along with
> other comments that are just raised.
> 
> Fam
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 850 bytes --]

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

* Re: [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-09 15:07     ` Fam Zheng
  2017-09-09 15:08       ` Kamil Rytarowski
@ 2017-09-09 18:38       ` Peter Maydell
  1 sibling, 0 replies; 45+ messages in thread
From: Peter Maydell @ 2017-09-09 18:38 UTC (permalink / raw)
  To: Fam Zheng; +Cc: QEMU Developers

On 9 September 2017 at 16:07, Fam Zheng <famz@redhat.com> wrote:
> On Sat, 09/09 13:07, Peter Maydell wrote:
>> On 9 September 2017 at 06:45, Fam Zheng <famz@redhat.com> wrote:
>> > Signed-off-by: Fam Zheng <famz@redhat.com>
>> > Message-Id: <20170905021201.25684-4-famz@redhat.com>
>> > ---
>> >  scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++
>> >  1 file changed, 31 insertions(+)
>> >  create mode 100755 scripts/archive-source.sh
>> >
>> > diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
>> > new file mode 100755
>> > index 0000000000..1de369532e
>> > --- /dev/null
>> > +++ b/scripts/archive-source.sh
>> > @@ -0,0 +1,31 @@
>> > +#!/bin/sh
>> > +#
>> > +# Author: Fam Zheng <famz@redhat.com>
>> > +#
>> > +# Create archive of source tree, including submodules
>> > +#
>> > +# This code is licensed under the GPL version 2 or later.  See
>> > +# the COPYING file in the top-level directory.
>>
>> So is this the script that for instance Mike Roth would use
>> to create the release tarballs? If it isn't, should it be?
>
> I don't know the workflow of release tarballs, there is ./scripts/make-release
> for that. So this one is not.
>
>> Is it intended for end users to create tarballs with, or
>> is it really just a helper script for the docker stuff?
>> If the latter, it would be helpful to say so. If the former,
>> it could really use more usage information/documentation...
>
> I'm not sure what end users would use this for, but it should do its work just
> the same.. What kind of usage information do you suggest? More explaination in
> the header, or in the "usage" output when no target is specified, or a "-h"
> option for help?

Basically, if it's a special purpose script that is only
being used by docker, then it should clearly say that
so that anybody who looks at it will know it's not
something relevant to them. If it's not special purpose
then it should say what it's for and how you use it.
Just putting this in comments at the top of the script
is fine.

thanks
-- PMM

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

* Re: [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-09 15:08       ` Kamil Rytarowski
@ 2017-09-10  2:05         ` Fam Zheng
  2017-09-10 10:15           ` Kamil Rytarowski
  0 siblings, 1 reply; 45+ messages in thread
From: Fam Zheng @ 2017-09-10  2:05 UTC (permalink / raw)
  To: Kamil Rytarowski; +Cc: Peter Maydell, QEMU Developers

On Sat, 09/09 17:08, Kamil Rytarowski wrote:
> >>> +submodules=$(git submodule foreach --recursive --quiet 'echo $name')
> >>> +
> >>> +if test -n "$submodules"; then
> >>> +    {
> >>> +        git ls-files
> >>> +        for sm in $submodules; do
> >>> +            (cd $sm; git ls-files) | sed "s:^:$sm/:"
> >>> +        done
> >>> +    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > $1.list
> >>
> >> Supporting '-e something' in a tar -T listfile seems to
> >> be GNU tar specific. Do we care?
> > 
> > The "-e $sm" will go to the grep command line, so it isn't GNU specific, is it?
> > 
> 
> BSD OSes use GNU grep(1) the latest version GPLv2. There is a work in
> progress BSD grep(1), but not turned on by default as it's slower.
> 
> The -e option is supported by SmartOS grep(1).

Is there a more portable way to filter out multiple patterns?

Fam

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

* Re: [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh
  2017-09-10  2:05         ` Fam Zheng
@ 2017-09-10 10:15           ` Kamil Rytarowski
  0 siblings, 0 replies; 45+ messages in thread
From: Kamil Rytarowski @ 2017-09-10 10:15 UTC (permalink / raw)
  To: Fam Zheng; +Cc: Peter Maydell, QEMU Developers

[-- Attachment #1: Type: text/plain, Size: 1098 bytes --]

On 10.09.2017 04:05, Fam Zheng wrote:
> On Sat, 09/09 17:08, Kamil Rytarowski wrote:
>>>>> +submodules=$(git submodule foreach --recursive --quiet 'echo $name')
>>>>> +
>>>>> +if test -n "$submodules"; then
>>>>> +    {
>>>>> +        git ls-files
>>>>> +        for sm in $submodules; do
>>>>> +            (cd $sm; git ls-files) | sed "s:^:$sm/:"
>>>>> +        done
>>>>> +    } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > $1.list
>>>>
>>>> Supporting '-e something' in a tar -T listfile seems to
>>>> be GNU tar specific. Do we care?
>>>
>>> The "-e $sm" will go to the grep command line, so it isn't GNU specific, is it?
>>>
>>
>> BSD OSes use GNU grep(1) the latest version GPLv2. There is a work in
>> progress BSD grep(1), but not turned on by default as it's slower.
>>
>> The -e option is supported by SmartOS grep(1).
> 
> Is there a more portable way to filter out multiple patterns?
> 
> Fam
> 


I don't think that there is needed more portability. If so, there is an
option to detect "ggrep" (GNU grep) and if it exists - use it.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 850 bytes --]

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

end of thread, other threads:[~2017-09-10 10:26 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-09  5:45 [Qemu-devel] [PULL v2 00/37] Staging patches Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 01/37] docker: ensure NOUSER for travis images Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 02/37] docker: docker.py make --no-cache skip checksum test Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 03/37] docker: don't install device-tree-compiler build-deps in travis.docker Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 04/37] docker: reduce noise when building travis.docker Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 05/37] docker: Update ubuntu image Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 06/37] docker: Enable features explicitly in test-full Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 07/37] tests/docker: Clean up paths Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 08/37] gitignore: Ignore vm test images Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 09/37] qemu.py: Add "wait()" method Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 10/37] scripts: Add archive-source.sh Fam Zheng
2017-09-09 12:07   ` Peter Maydell
2017-09-09 15:07     ` Fam Zheng
2017-09-09 15:08       ` Kamil Rytarowski
2017-09-10  2:05         ` Fam Zheng
2017-09-10 10:15           ` Kamil Rytarowski
2017-09-09 18:38       ` Peter Maydell
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 11/37] tests: Add vm test lib Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 12/37] tests: Add ubuntu.i386 image Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 13/37] tests: Add FreeBSD image Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 14/37] tests: Add NetBSD image Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 15/37] tests: Add OpenBSD image Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 16/37] Makefile: Add rules to run vm tests Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 17/37] MAINTAINERS: Add tests/vm entry Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 18/37] tests: Add README for vm tests Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 19/37] docker: Use archive-source.py Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 20/37] docker: Fix return code of build_qemu() Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 21/37] docker: Add test_fail and prep_fail Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 22/37] docker: Use unconfined security profile Fam Zheng
2017-09-09  5:45 ` [Qemu-devel] [PULL v2 23/37] docker: Add nettle-devel to fedora image Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 24/37] docker: Add test-block Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 25/37] docker: Drop 'set -e' from run script Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 26/37] vl: Don't include vde header Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 27/37] buildsys: Move vde libs to per object Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 28/37] buildsys: Move gtk/vte cflags/libs " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 29/37] buildsys: Move sdl " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 30/37] buildsys: Move vnc " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 31/37] buildsys: Move audio libs " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 32/37] buildsys: Move curese cflags/libs " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 33/37] buildsys: Move libcacard " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 34/37] buildsys: Move libusb " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 35/37] buildsys: Move usb redir " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 36/37] buildsys: Move brlapi libs " Fam Zheng
2017-09-09  5:46 ` [Qemu-devel] [PULL v2 37/37] buildsys: Move rdma " Fam Zheng
2017-09-09  6:14 ` [Qemu-devel] [PULL v2 00/37] Staging patches no-reply

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.