[Qemu-devel] [PATCH v1 00/23] Current Travis Queue

Alex Bennée posted 23 patches 6 years, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170717144848.11793-1-alex.bennee@linaro.org
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
.shippable.yml                                     |  8 ++++
.travis.yml                                        |  3 +-
tests/docker/Makefile.include                      | 13 ++++--
tests/docker/dockerfiles/debian-amd64.docker       | 39 ++++++++++++++++++
tests/docker/dockerfiles/debian-apt-fake.sh        | 46 ++++++++++++++++++++++
tests/docker/dockerfiles/debian-arm64-cross.docker | 10 ++---
tests/docker/dockerfiles/debian-armel-cross.docker | 24 +++++++++++
tests/docker/dockerfiles/debian-armhf-cross.docker |  7 +---
.../docker/dockerfiles/debian-mipsel-cross.docker  |  7 +---
.../docker/dockerfiles/debian-powerpc-cross.docker | 40 +++++++++++++++++++
.../docker/dockerfiles/debian-ppc64el-cross.docker | 24 +++++++++++
tests/docker/dockerfiles/debian-s390x-cross.docker | 23 +++++------
tests/docker/dockerfiles/debian8.docker            | 31 +++++++++++++++
.../dockerfiles/{debian.docker => debian9.docker}  | 15 +++++--
tests/docker/dockerfiles/travis.docker             |  2 +-
tests/docker/travis.py                             |  6 +--
util/cacheinfo.c                                   |  1 +
17 files changed, 259 insertions(+), 40 deletions(-)
create mode 100644 tests/docker/dockerfiles/debian-amd64.docker
create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh
create mode 100644 tests/docker/dockerfiles/debian-armel-cross.docker
create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
create mode 100644 tests/docker/dockerfiles/debian-ppc64el-cross.docker
create mode 100644 tests/docker/dockerfiles/debian8.docker
rename tests/docker/dockerfiles/{debian.docker => debian9.docker} (59%)
[Qemu-devel] [PATCH v1 00/23] Current Travis Queue
Posted by Alex Bennée 6 years, 9 months ago
Hi,

This is the current status of the travis/next patch queue. The
includes updates from Paolo to allow parallelism while testing in the
docker environment. I've extended the travis image so we can actually
run our travis.py script in the Travis image.

There are also a number of updates from Phillipe which add a bunch of
additional cross compile targets to our shippable setup. The cachinfo
patch is temporary and won't make the pull as it is already queued in
Richard's tcg-next.

I'm currently trying to catch one of our Travis hangs in the act
(postcopy-test) but it seems to be very much a heavy load race
condition which annoyingly stops happening once you try and get
debugging tools on it. This is the reason I've updated the travis
docker image to include the debug tools ;-)

As long as there are no screams of outrage I'll roll a pullreq for
softfreeze tomorrow.

Alex.

Alex Bennée (3):
  docker: include python-yaml in travis.docker
  docker: add debug tools to travis.docker
  docker: add debian/powerpc based on Jessie

Paolo Bonzini (2):
  docker: allow customizing Travis global_env variables
  travis: move make -j flag out of script

Philippe Mathieu-Daudé (18):
  docker: rename debian stable -> 9 (Stretch)
  docker: add pkg-config and python-minimal packages to debian base
  docker: debian/s390x no more in unstable, now available in Stretch
  docker: remove packages now dependent of qemu in Stretch
  docker: add debian/armel based on Stretch
  docker: add debian/ppc64el based on Stretch
  docker: add debian/amd64 based on Stretch
  docker: enable virgl to extend code coverage on amd64
  docker: enable netmap to extend code coverage on amd64
  docker: enable gcrypt to extend code coverage on amd64
  docker: enable nettle to extend code coverage on arm64
  shippable: add armel targets
  shippable: add ppc64el targets
  shippable: add x86_64 targets
  util/cacheinfo: add missing include (TEMP)
  docker: add 'apt-fake' script which generate fake debian packages
  docker: add qemu:debian-jessie based on outdated jessie release
  shippable: add powerpc target

 .shippable.yml                                     |  8 ++++
 .travis.yml                                        |  3 +-
 tests/docker/Makefile.include                      | 13 ++++--
 tests/docker/dockerfiles/debian-amd64.docker       | 39 ++++++++++++++++++
 tests/docker/dockerfiles/debian-apt-fake.sh        | 46 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian-arm64-cross.docker | 10 ++---
 tests/docker/dockerfiles/debian-armel-cross.docker | 24 +++++++++++
 tests/docker/dockerfiles/debian-armhf-cross.docker |  7 +---
 .../docker/dockerfiles/debian-mipsel-cross.docker  |  7 +---
 .../docker/dockerfiles/debian-powerpc-cross.docker | 40 +++++++++++++++++++
 .../docker/dockerfiles/debian-ppc64el-cross.docker | 24 +++++++++++
 tests/docker/dockerfiles/debian-s390x-cross.docker | 23 +++++------
 tests/docker/dockerfiles/debian8.docker            | 31 +++++++++++++++
 .../dockerfiles/{debian.docker => debian9.docker}  | 15 +++++--
 tests/docker/dockerfiles/travis.docker             |  2 +-
 tests/docker/travis.py                             |  6 +--
 util/cacheinfo.c                                   |  1 +
 17 files changed, 259 insertions(+), 40 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-amd64.docker
 create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh
 create mode 100644 tests/docker/dockerfiles/debian-armel-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-ppc64el-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian8.docker
 rename tests/docker/dockerfiles/{debian.docker => debian9.docker} (59%)

-- 
2.13.0


Re: [Qemu-devel] [PATCH v1 00/23] Current Travis Queue
Posted by Fam Zheng 6 years, 9 months ago
On Mon, 07/17 15:48, Alex Bennée wrote:
> Hi,
> 
> This is the current status of the travis/next patch queue. The
> includes updates from Paolo to allow parallelism while testing in the
> docker environment. I've extended the travis image so we can actually
> run our travis.py script in the Travis image.
> 
> There are also a number of updates from Phillipe which add a bunch of
> additional cross compile targets to our shippable setup. The cachinfo
> patch is temporary and won't make the pull as it is already queued in
> Richard's tcg-next.
> 
> I'm currently trying to catch one of our Travis hangs in the act
> (postcopy-test) but it seems to be very much a heavy load race
> condition which annoyingly stops happening once you try and get
> debugging tools on it. This is the reason I've updated the travis
> docker image to include the debug tools ;-)
> 
> As long as there are no screams of outrage I'll roll a pullreq for
> softfreeze tomorrow.

Renaming of debian to debian9 seems backward incompatible. We don't care that
much, but I'd like to see a commit message justifying the change. Otherwise it
looks good to go (minus the cachinfo patch, of course).

Fam

Re: [Qemu-devel] [PATCH v1 00/23] Current Travis Queue
Posted by Alex Bennée 6 years, 9 months ago
Fam Zheng <famz@redhat.com> writes:

> On Mon, 07/17 15:48, Alex Bennée wrote:
>> Hi,
>>
>> This is the current status of the travis/next patch queue. The
>> includes updates from Paolo to allow parallelism while testing in the
>> docker environment. I've extended the travis image so we can actually
>> run our travis.py script in the Travis image.
>>
>> There are also a number of updates from Phillipe which add a bunch of
>> additional cross compile targets to our shippable setup. The cachinfo
>> patch is temporary and won't make the pull as it is already queued in
>> Richard's tcg-next.
>>
>> I'm currently trying to catch one of our Travis hangs in the act
>> (postcopy-test) but it seems to be very much a heavy load race
>> condition which annoyingly stops happening once you try and get
>> debugging tools on it. This is the reason I've updated the travis
>> docker image to include the debug tools ;-)
>>
>> As long as there are no screams of outrage I'll roll a pullreq for
>> softfreeze tomorrow.
>
> Renaming of debian to debian9 seems backward incompatible. We don't care that
> much, but I'd like to see a commit message justifying the change. Otherwise it
> looks good to go (minus the cachinfo patch, of course).

Well originally we were basing off debian-stable but we got caught out
by the new release. With this series we have most things off the latest
stable (Debian 9 - aka Stretch) but one or two builds are based of old
stable (Debian 8 - aka Jessie) and using the embedian hacks we had
before.

I think for this it's mostly a matter of clarity.

--
Alex Bennée

[Qemu-devel] [PATCH] docker: warn users to use newer debian8/debian9 base image
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
to stay backward incompatible.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/Makefile.include          |  1 +
 tests/docker/dockerfiles/debian.docker | 13 +++++++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index e993e149e7..aaab1a4208 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -58,6 +58,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 docker-image-debian-powerpc-cross: EXTRA_FILES:=tests/docker/dockerfiles/debian-apt-fake.sh
 
 # Enforce dependancies for composite images
+docker-image-debian: docker-image-debian9
 docker-image-debian8-mxe: docker-image-debian8
 docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
new file mode 100644
index 0000000000..fd32e71b79
--- /dev/null
+++ b/tests/docker/dockerfiles/debian.docker
@@ -0,0 +1,13 @@
+# This template is deprecated and was previously based on Jessie on QEMU 2.9.
+# Now than Stretch is out, please use qemu:debian8 as base for Jessie,
+# and qemu:debian9 for Stretch.
+#
+FROM qemu:debian9
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+RUN for n in $(seq 8); do echo; done && \
+    echo "\n\t\tThis image is deprecated." && echo && \
+    echo "\tUse 'FROM qemu:debian9' to use the stable Debian Stretch image" && \
+    echo "\tor 'FROM qemu:debian8' to use old Debian Jessie." && \
+    for n in $(seq 8); do echo; done
-- 
2.13.2


[Qemu-devel] [PATCH v2.5 0/5] (more) Updated Travis Queue
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Sorry I messed previous series... just updated last 5 patches of v2.

v2.5:
- MXE replaced <tab> by <space>s
- docker9/ports: lost package 'clang' re-added
- include patch keep 'debian.docker' base image backward incompatible 

On 07/17/2017 09:31 PM, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> a bit late, but in case you can take some for 2.10:
> 
> v2:
> - cleanup few packages (to improve image caching)
> - dropped mipsEL and keep mipsEB image (32-bit big endian)
> - add mips64EL (64-bit little endian)
> - add mingw32 and mingw64 targets (shared libs, could be static)
> - add debian Ports image [can be dropped, use as base for SH4 for 2.11]
> 
> On 07/17/2017 11:48 AM, Alex Bennée wrote:
>> Hi,
>>
>> This is the current status of the travis/next patch queue. The
>> includes updates from Paolo to allow parallelism while testing in the
>> docker environment. I've extended the travis image so we can actually
>> run our travis.py script in the Travis image.
>>
>> There are also a number of updates from Phillipe which add a bunch of
>> additional cross compile targets to our shippable setup. The cachinfo
>> patch is temporary and won't make the pull as it is already queued in
>> Richard's tcg-next.
>>
>> I'm currently trying to catch one of our Travis hangs in the act
>> (postcopy-test) but it seems to be very much a heavy load race
>> condition which annoyingly stops happening once you try and get
>> debugging tools on it. This is the reason I've updated the travis
>> docker image to include the debug tools;-)
>>
>> As long as there are no screams of outrage I'll roll a pullreq for
>> softfreeze tomorrow.

Philippe Mathieu-Daudé (5):
  docker: add MXE (M cross environment) base image for MinGW-w64
  shippable: add win32/64 targets
  docker: add debian Ports base image
  docker: warn users to use newer debian8/debian9 base image
  docker: install clang since Shippable setup_ve() verify it is
    available

 .shippable.yml                                     |  4 +++
 tests/docker/Makefile.include                      |  4 +++
 tests/docker/dockerfiles/debian-ports.docker       | 35 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian-win32-cross.docker | 32 ++++++++++++++++++++
 tests/docker/dockerfiles/debian-win64-cross.docker | 32 ++++++++++++++++++++
 tests/docker/dockerfiles/debian.docker             | 13 ++++++++
 tests/docker/dockerfiles/debian8-mxe.docker        | 18 +++++++++++
 tests/docker/dockerfiles/debian9.docker            |  1 +
 8 files changed, 139 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-ports.docker
 create mode 100644 tests/docker/dockerfiles/debian-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-win64-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian.docker
 create mode 100644 tests/docker/dockerfiles/debian8-mxe.docker

-- 
2.13.2


Re: [Qemu-devel] [PATCH v2.5 0/5] (more) Updated Travis Queue
Posted by Fam Zheng 6 years, 9 months ago
On Mon, 07/17 23:47, Philippe Mathieu-Daudé wrote:
> Sorry I messed previous series... just updated last 5 patches of v2.

Please do full respins and don't post as in-reply-to previous versions, this
doesn't make things any easier for maintainers.

Fam

[Qemu-devel] [PATCH v2.5 1/5] docker: add MXE (M cross environment) base image for MinGW-w64
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
see http://mxe.cc/

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/Makefile.include                      |  3 ++
 tests/docker/dockerfiles/debian-win32-cross.docker | 32 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian-win64-cross.docker | 32 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian8-mxe.docker        | 18 ++++++++++++
 4 files changed, 85 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-win64-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian8-mxe.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 5a8283674a..e993e149e7 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -58,6 +58,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 docker-image-debian-powerpc-cross: EXTRA_FILES:=tests/docker/dockerfiles/debian-apt-fake.sh
 
 # Enforce dependancies for composite images
+docker-image-debian8-mxe: docker-image-debian8
 docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
@@ -67,6 +68,8 @@ docker-image-debian-mips64el-cross: docker-image-debian9
 docker-image-debian-powerpc-cross: docker-image-debian8
 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
 
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(DOCKER_IMAGES), \
diff --git a/tests/docker/dockerfiles/debian-win32-cross.docker b/tests/docker/dockerfiles/debian-win32-cross.docker
new file mode 100644
index 0000000000..dd021f2df0
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-win32-cross.docker
@@ -0,0 +1,32 @@
+#
+# Docker mingw32 cross-compiler target
+#
+# This docker target builds on the debian Jessie MXE base image.
+#
+FROM qemu:debian8-mxe
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+ENV TARGET i686
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        mxe-$TARGET-w64-mingw32.shared-bzip2 \
+        mxe-$TARGET-w64-mingw32.shared-curl \
+        mxe-$TARGET-w64-mingw32.shared-glib \
+        mxe-$TARGET-w64-mingw32.shared-libgcrypt \
+        mxe-$TARGET-w64-mingw32.shared-libssh2 \
+        mxe-$TARGET-w64-mingw32.shared-libusb1 \
+        mxe-$TARGET-w64-mingw32.shared-lzo \
+        mxe-$TARGET-w64-mingw32.shared-nettle \
+        mxe-$TARGET-w64-mingw32.shared-ncurses \
+        mxe-$TARGET-w64-mingw32.shared-pixman \
+        mxe-$TARGET-w64-mingw32.shared-pkgconf \
+        mxe-$TARGET-w64-mingw32.shared-pthreads \
+        mxe-$TARGET-w64-mingw32.shared-sdl2 \
+        mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
+        mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
+        mxe-$TARGET-w64-mingw32.shared-zlib
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=$TARGET-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian-win64-cross.docker b/tests/docker/dockerfiles/debian-win64-cross.docker
new file mode 100644
index 0000000000..4542bcc821
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-win64-cross.docker
@@ -0,0 +1,32 @@
+#
+# Docker mingw64 cross-compiler target
+#
+# This docker target builds on the debian Jessie MXE base image.
+#
+FROM qemu:debian8-mxe
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+ENV TARGET x86-64
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        mxe-$TARGET-w64-mingw32.shared-bzip2 \
+        mxe-$TARGET-w64-mingw32.shared-curl \
+        mxe-$TARGET-w64-mingw32.shared-glib \
+        mxe-$TARGET-w64-mingw32.shared-libgcrypt \
+        mxe-$TARGET-w64-mingw32.shared-libssh2 \
+        mxe-$TARGET-w64-mingw32.shared-libusb1 \
+        mxe-$TARGET-w64-mingw32.shared-lzo \
+        mxe-$TARGET-w64-mingw32.shared-nettle \
+        mxe-$TARGET-w64-mingw32.shared-ncurses \
+        mxe-$TARGET-w64-mingw32.shared-pixman \
+        mxe-$TARGET-w64-mingw32.shared-pkgconf \
+        mxe-$TARGET-w64-mingw32.shared-pthreads \
+        mxe-$TARGET-w64-mingw32.shared-sdl2 \
+        mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
+        mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
+        mxe-$TARGET-w64-mingw32.shared-zlib
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian8-mxe.docker b/tests/docker/dockerfiles/debian8-mxe.docker
new file mode 100644
index 0000000000..7bf1b59e54
--- /dev/null
+++ b/tests/docker/dockerfiles/debian8-mxe.docker
@@ -0,0 +1,18 @@
+#
+# Docker mingw cross-compiler target
+#
+# This docker target builds on the debian Jessie base image.
+#
+FROM qemu:debian8
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB && \
+    echo "deb http://pkg.mxe.cc/repos/apt/debian jessie main" > /etc/apt/sources.list.d/mxeapt.list
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        $(apt-get -s install -y --no-install-recommends gw32.shared-mingw-w64 gw32.shared-mingw-w64 | egrep "^Inst mxe-x86-64-unknown-" | cut -d\  -f2)
+
+ENV PATH $PATH:/usr/lib/mxe/usr/bin/ 
-- 
2.13.2


[Qemu-devel] [PATCH v2.5 2/5] shippable: add win32/64 targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .shippable.yml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/.shippable.yml b/.shippable.yml
index 53b43b349f..dd4bbc84b1 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -7,6 +7,10 @@ env:
   matrix:
     - IMAGE=debian-amd64
       TARGET_LIST=x86_64-softmmu,x86_64-linux-user
+    - IMAGE=debian-win32-cross
+      TARGET_LIST=arm-softmmu,i386-softmmu,lm32-softmmu
+    - IMAGE=debian-win64-cross
+      TARGET_LIST=aarch64-softmmu,sparc64-softmmu,x86_64-softmmu
     - IMAGE=debian-armel-cross
       TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
     - IMAGE=debian-armhf-cross
-- 
2.13.2


[Qemu-devel] [PATCH v2.5 3/5] docker: add debian Ports base image
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/dockerfiles/debian-ports.docker | 35 ++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-ports.docker

diff --git a/tests/docker/dockerfiles/debian-ports.docker b/tests/docker/dockerfiles/debian-ports.docker
new file mode 100644
index 0000000000..fba224f760
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-ports.docker
@@ -0,0 +1,35 @@
+#
+# Docker multiarch cross-compiler target
+#
+# This docker target is builds on Debian Ports cross compiler targets
+# to build distro with a selection of cross compilers for building test binaries.
+#
+# On its own you can't build much but the docker-foo-cross targets
+# build on top of the base debian image.
+#
+FROM debian:unstable
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+RUN echo "deb [arch=amd64] http://deb.debian.org/debian unstable main" > /etc/apt/sources.list
+
+# Duplicate deb line as deb-src
+RUN cat /etc/apt/sources.list | sed -ne "s/^deb\ \(\[.*\]\ \)\?\(.*\)/deb-src \2/p" >> /etc/apt/sources.list
+
+# Setup some basic tools we need
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -yy eatmydata
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        bison \
+        build-essential \
+        ca-certificates \
+        clang \
+        debian-ports-archive-keyring \
+        flex \
+        git \
+        pkg-config \
+        psmisc \
+        python \
+        texinfo \
+        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
-- 
2.13.2


[Qemu-devel] [PATCH v2.5 4/5] docker: warn users to use newer debian8/debian9 base image
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
to stay backward incompatible.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/Makefile.include          |  1 +
 tests/docker/dockerfiles/debian.docker | 13 +++++++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index e993e149e7..aaab1a4208 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -58,6 +58,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 docker-image-debian-powerpc-cross: EXTRA_FILES:=tests/docker/dockerfiles/debian-apt-fake.sh
 
 # Enforce dependancies for composite images
+docker-image-debian: docker-image-debian9
 docker-image-debian8-mxe: docker-image-debian8
 docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
new file mode 100644
index 0000000000..fd32e71b79
--- /dev/null
+++ b/tests/docker/dockerfiles/debian.docker
@@ -0,0 +1,13 @@
+# This template is deprecated and was previously based on Jessie on QEMU 2.9.
+# Now than Stretch is out, please use qemu:debian8 as base for Jessie,
+# and qemu:debian9 for Stretch.
+#
+FROM qemu:debian9
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+RUN for n in $(seq 8); do echo; done && \
+    echo "\n\t\tThis image is deprecated." && echo && \
+    echo "\tUse 'FROM qemu:debian9' to use the stable Debian Stretch image" && \
+    echo "\tor 'FROM qemu:debian8' to use old Debian Jessie." && \
+    for n in $(seq 8); do echo; done
-- 
2.13.2


[Qemu-devel] [PATCH v2.5 5/5] docker: install clang since Shippable setup_ve() verify it is available
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/dockerfiles/debian9.docker | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker
index 056e5389cc..a4509950e6 100644
--- a/tests/docker/dockerfiles/debian9.docker
+++ b/tests/docker/dockerfiles/debian9.docker
@@ -20,6 +20,7 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         bison \
         build-essential \
         ca-certificates \
+        clang \
         flex \
         git \
         pkg-config \
-- 
2.13.2


[Qemu-devel] [PATCH v2 00/31] Updated Travis Queue
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Hi,

a bit late, but in case you can take some for 2.10:

v2:
- cleanup few packages (to improve image caching)
- dropped mipsEL and keep mipsEB image (32-bit big endian)
- add mips64EL (64-bit little endian)
- add mingw32 and mingw64 targets (shared libs, could be static)
- add debian Ports image [can be dropped, use as base for SH4 for 2.11]

Regards,

Phil.

On 07/17/2017 11:48 AM, Alex Bennée wrote:
> Hi,
> 
> This is the current status of the travis/next patch queue. The
> includes updates from Paolo to allow parallelism while testing in the
> docker environment. I've extended the travis image so we can actually
> run our travis.py script in the Travis image.
> 
> There are also a number of updates from Phillipe which add a bunch of
> additional cross compile targets to our shippable setup. The cachinfo
> patch is temporary and won't make the pull as it is already queued in
> Richard's tcg-next.
> 
> I'm currently trying to catch one of our Travis hangs in the act
> (postcopy-test) but it seems to be very much a heavy load race
> condition which annoyingly stops happening once you try and get
> debugging tools on it. This is the reason I've updated the travis
> docker image to include the debug tools;-)
> 
> As long as there are no screams of outrage I'll roll a pullreq for
> softfreeze tomorrow.
> 
> Alex.

Alex Bennée (3):
  docker: include python-yaml in travis.docker
  docker: add debug tools to travis.docker
  docker: add debian/powerpc based on Jessie

Paolo Bonzini (2):
  docker: allow customizing Travis global_env variables
  travis: move make -j flag out of script

Philippe Mathieu-Daudé (26):
  docker: rename debian stable -> 9 (Stretch)
  docker: add common packages to debian base
  docker: debian/s390x no more in unstable, now available in Stretch
  docker: remove packages now dependent of qemu in Stretch
  docker: optimize debian9 base image
  docker: add debian/armel based on Stretch
  docker: add debian/ppc64el based on Stretch
  docker: add debian/amd64 based on Stretch
  docker: enable virgl to extend code coverage on amd64
  docker: enable netmap to extend code coverage on amd64
  docker: enable gcrypt to extend code coverage on amd64
  docker: enable nettle to extend code coverage on arm64
  shippable: add armel targets
  shippable: add ppc64el targets
  shippable: add x86_64 targets
  util/cacheinfo: add missing include
  docker: add qemu:debian-jessie based on outdated jessie release
  docker: add 'apt-fake' script which generate fake debian packages
  shippable: add powerpc target
  docker: add debian/mips[eb] images
  shippable: use debian/mips[eb] targets
  docker: add debian/mips64el image
  shippable: add mips64el targets
  docker: add MXE (M cross environment) base image for MinGW-w64
  shippable: add win32/64 targets
  docker: add debian Ports base image

 .shippable.yml                                     | 19 +++++++--
 .travis.yml                                        |  3 +-
 tests/docker/Makefile.include                      | 17 ++++++--
 tests/docker/dockerfiles/debian-amd64.docker       | 39 ++++++++++++++++++
 tests/docker/dockerfiles/debian-apt-fake.sh        | 46 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian-arm64-cross.docker | 10 ++---
 tests/docker/dockerfiles/debian-armel-cross.docker | 24 +++++++++++
 tests/docker/dockerfiles/debian-armhf-cross.docker |  7 +---
 tests/docker/dockerfiles/debian-mips-cross.docker  | 29 ++++++++++++++
 .../dockerfiles/debian-mips64el-cross.docker       | 30 ++++++++++++++
 .../docker/dockerfiles/debian-mipsel-cross.docker  | 16 ++++----
 tests/docker/dockerfiles/debian-ports.docker       | 34 ++++++++++++++++
 .../docker/dockerfiles/debian-powerpc-cross.docker | 40 +++++++++++++++++++
 .../docker/dockerfiles/debian-ppc64el-cross.docker | 25 ++++++++++++
 tests/docker/dockerfiles/debian-s390x-cross.docker | 23 +++++------
 tests/docker/dockerfiles/debian-win32-cross.docker | 32 +++++++++++++++
 tests/docker/dockerfiles/debian-win64-cross.docker | 32 +++++++++++++++
 tests/docker/dockerfiles/debian8-mxe.docker        | 18 +++++++++
 tests/docker/dockerfiles/debian8.docker            | 36 +++++++++++++++++
 .../dockerfiles/{debian.docker => debian9.docker}  | 17 ++++++--
 tests/docker/dockerfiles/travis.docker             |  2 +-
 tests/docker/travis.py                             |  6 +--
 util/cacheinfo.c                                   |  1 +
 23 files changed, 460 insertions(+), 46 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-amd64.docker
 create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh
 create mode 100644 tests/docker/dockerfiles/debian-armel-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-mips-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-mips64el-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-ports.docker
 create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-ppc64el-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-win64-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian8-mxe.docker
 create mode 100644 tests/docker/dockerfiles/debian8.docker
 rename tests/docker/dockerfiles/{debian.docker => debian9.docker} (52%)

-- 
2.13.2


Re: [Qemu-devel] [PATCH v2 00/31] Updated Travis Queue
Posted by no-reply@patchew.org 6 years, 9 months ago
Hi,

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

Subject: [Qemu-devel] [PATCH v2 00/31] Updated Travis Queue
Message-id: 20170718003159.10200-1-f4bug@amsat.org
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
 - [tag update]      patchew/20170712162058.10538-1-ehabkost@redhat.com -> patchew/20170712162058.10538-1-ehabkost@redhat.com
 * [new tag]         patchew/cover.34f8428dbbcaa0611cef759667d281ae508ac91d.1500378931.git-series.james.hogan@imgtec.com -> patchew/cover.34f8428dbbcaa0611cef759667d281ae508ac91d.1500378931.git-series.james.hogan@imgtec.com
Switched to a new branch 'test'
ccf8b79 docker: add debian Ports base image
1d50216 shippable: add win32/64 targets
2d60fa6 docker: add MXE (M cross environment) base image for MinGW-w64
9ac23ef shippable: add mips64el targets
6359551 docker: add debian/mips64el image
334ba00 shippable: use debian/mips[eb] targets
01c95b4 docker: add debian/mips[eb] images
2e63e0d shippable: add powerpc target
d2efe10 docker: add debian/powerpc based on Jessie
967070c docker: add 'apt-fake' script which generate fake debian packages
aaa08ff docker: add qemu:debian-jessie based on outdated jessie release
c21ee29 util/cacheinfo: add missing include
65ce350 shippable: add x86_64 targets
2b36cc5 shippable: add ppc64el targets
0a38183 shippable: add armel targets
246c517 docker: enable nettle to extend code coverage on arm64
0bc3dcb docker: enable gcrypt to extend code coverage on amd64
df95408 docker: enable netmap to extend code coverage on amd64
951854e docker: enable virgl to extend code coverage on amd64
614d95e docker: add debian/amd64 based on Stretch
a6f5e01 docker: add debian/ppc64el based on Stretch
88e3839 docker: add debian/armel based on Stretch
96ac7ec docker: optimize debian9 base image
a8da518 docker: remove packages now dependent of qemu in Stretch
e0219b2 docker: debian/s390x no more in unstable, now available in Stretch
3f63830 docker: add common packages to debian base
77d452a docker: rename debian stable -> 9 (Stretch)
fe1bebf docker: add debug tools to travis.docker
0738a47 docker: include python-yaml in travis.docker
41e0862 travis: move make -j flag out of script
6ca5c9a docker: allow customizing Travis global_env variables

=== OUTPUT BEGIN ===
Checking PATCH 1/31: docker: allow customizing Travis global_env variables...
Checking PATCH 2/31: travis: move make -j flag out of script...
Checking PATCH 3/31: docker: include python-yaml in travis.docker...
Checking PATCH 4/31: docker: add debug tools to travis.docker...
Checking PATCH 5/31: docker: rename debian stable -> 9 (Stretch)...
Checking PATCH 6/31: docker: add common packages to debian base...
Checking PATCH 7/31: docker: debian/s390x no more in unstable, now available in Stretch...
Checking PATCH 8/31: docker: remove packages now dependent of qemu in Stretch...
Checking PATCH 9/31: docker: optimize debian9 base image...
Checking PATCH 10/31: docker: add debian/armel based on Stretch...
Checking PATCH 11/31: docker: add debian/ppc64el based on Stretch...
Checking PATCH 12/31: docker: add debian/amd64 based on Stretch...
Checking PATCH 13/31: docker: enable virgl to extend code coverage on amd64...
Checking PATCH 14/31: docker: enable netmap to extend code coverage on amd64...
Checking PATCH 15/31: docker: enable gcrypt to extend code coverage on amd64...
Checking PATCH 16/31: docker: enable nettle to extend code coverage on arm64...
Checking PATCH 17/31: shippable: add armel targets...
Checking PATCH 18/31: shippable: add ppc64el targets...
Checking PATCH 19/31: shippable: add x86_64 targets...
Checking PATCH 20/31: util/cacheinfo: add missing include...
Checking PATCH 21/31: docker: add qemu:debian-jessie based on outdated jessie release...
Checking PATCH 22/31: docker: add 'apt-fake' script which generate fake debian packages...
Checking PATCH 23/31: docker: add debian/powerpc based on Jessie...
Checking PATCH 24/31: shippable: add powerpc target...
Checking PATCH 25/31: docker: add debian/mips[eb] images...
Checking PATCH 26/31: shippable: use debian/mips[eb] targets...
Checking PATCH 27/31: docker: add debian/mips64el image...
Checking PATCH 28/31: shippable: add mips64el targets...
Checking PATCH 29/31: docker: add MXE (M cross environment) base image for MinGW-w64...
ERROR: trailing whitespace
#135: FILE: tests/docker/dockerfiles/debian8-mxe.docker:18:
+ENV PATH $PATH:/usr/lib/mxe/usr/bin/ $

total: 1 errors, 0 warnings, 97 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 30/31: shippable: add win32/64 targets...
Checking PATCH 31/31: docker: add debian Ports base image...
=== 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
[Qemu-devel] [PATCH v2 01/31] docker: allow customizing Travis global_env variables
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
From: Paolo Bonzini <pbonzini@redhat.com>

This is useful so that we can do builds at higher than -j3 when running
travis.py locally.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/docker/travis.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/docker/travis.py b/tests/docker/travis.py
index 8dcc964da4..703a7fde85 100755
--- a/tests/docker/travis.py
+++ b/tests/docker/travis.py
@@ -21,13 +21,12 @@ def load_yaml(fname):
 def conf_iter(conf):
     def env_to_list(env):
         return env if isinstance(env, list) else [env]
-    global_env = conf["env"]["global"]
     for entry in conf["matrix"]["include"]:
-        yield {"env": global_env + env_to_list(entry["env"]),
+        yield {"env": env_to_list(entry["env"]),
                "compiler": entry["compiler"]}
     for entry in itertools.product(conf["compiler"],
                                    conf["env"]["matrix"]):
-        yield {"env": global_env + env_to_list(entry[1]),
+        yield {"env": env_to_list(entry[1]),
                "compiler": entry[0]}
 
 def main():
@@ -35,6 +34,7 @@ def main():
         sys.stderr.write("Usage: %s <travis-file>\n" % sys.argv[0])
         return 1
     conf = load_yaml(sys.argv[1])
+    print "\n".join((": ${%s}" % var for var in conf["env"]["global"]))
     for config in conf_iter(conf):
         print "("
         print "\n".join(config["env"])
-- 
2.13.2


[Qemu-devel] [PATCH v2 02/31] travis: move make -j flag out of script
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
From: Paolo Bonzini <pbonzini@redhat.com>

Because global environment variables can be overridden when .travis.yml
is processed by the docker-travis target, the effect of this patch is
that docker-travis now obeys the "J=n" option.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 .travis.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 3c7a5cbe25..f583839755 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -46,6 +46,7 @@ notifications:
 env:
   global:
     - TEST_CMD="make check"
+    - MAKEFLAGS="-j3"
   matrix:
     - CONFIG=""
     - CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
@@ -64,7 +65,7 @@ before_install:
 before_script:
   - ./configure ${CONFIG}
 script:
-  - make -j3 && ${TEST_CMD}
+  - make ${MAKEFLAGS} && ${TEST_CMD}
 matrix:
   include:
     # Test with CLang for compile portability
-- 
2.13.2


[Qemu-devel] [PATCH v2 03/31] docker: include python-yaml in travis.docker
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
From: Alex Bennée <alex.bennee@linaro.org>

Although the upstream Travis images don't need this library our
"travis-lite" scripts are written in python. This allows us to do:

  make docker-travis@travis J=10

and approximate a travis run on their default image.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/travis.docker | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index e4983ae2d3..a315f66ad9 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -2,5 +2,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 dh-autoreconf
+RUN apt-get -y install python2.7 python-yaml dh-autoreconf
 ENV FEATURES pyyaml
-- 
2.13.2


[Qemu-devel] [PATCH v2 04/31] docker: add debug tools to travis.docker
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
From: Alex Bennée <alex.bennee@linaro.org>

When a test fails/hangs you don't want the hassle of getting the debug
tools installed. Lets install them on our image by default so we can
debug when we need to.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/dockerfiles/travis.docker | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index a315f66ad9..636fa590a5 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -2,5 +2,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
+RUN apt-get -y install python2.7 python-yaml dh-autoreconf gdb strace lsof net-tools
 ENV FEATURES pyyaml
-- 
2.13.2


[Qemu-devel] [PATCH v2 05/31] docker: rename debian stable -> 9 (Stretch)
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include                              |  6 +++---
 tests/docker/dockerfiles/debian-arm64-cross.docker         |  4 ++--
 tests/docker/dockerfiles/debian-armhf-cross.docker         |  4 ++--
 tests/docker/dockerfiles/debian-mipsel-cross.docker        |  4 ++--
 tests/docker/dockerfiles/{debian.docker => debian9.docker} | 13 +++++++++----
 5 files changed, 18 insertions(+), 13 deletions(-)
 rename tests/docker/dockerfiles/{debian.docker => debian9.docker} (62%)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 012a2fc1af..72bb52ad7b 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -56,9 +56,9 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 		"BUILD","$*")
 
 # Enforce dependancies for composite images
-docker-image-debian-armhf-cross: docker-image-debian
-docker-image-debian-arm64-cross: docker-image-debian
-docker-image-debian-mipsel-cross: docker-image-debian
+docker-image-debian-armhf-cross: docker-image-debian9
+docker-image-debian-arm64-cross: docker-image-debian9
+docker-image-debian-mipsel-cross: docker-image-debian9
 
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(DOCKER_IMAGES), \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 45b891d57a..f1bfa64160 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -1,9 +1,9 @@
 #
 # Docker arm64 cross-compiler target
 #
-# This docker target builds on the base debian image.
+# This docker target builds on the debian Stretch base image.
 #
-FROM qemu:debian
+FROM qemu:debian9
 
 # Add the foreign architecture we want and install dependencies
 RUN dpkg --add-architecture arm64
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index e67dfdccc5..2beacef49b 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -1,9 +1,9 @@
 #
 # Docker armhf cross-compiler target
 #
-# This docker target builds on the base debian image.
+# This docker target builds on the debian Stretch base image.
 #
-FROM qemu:debian
+FROM qemu:debian9
 
 # Add the foreign architecture we want and install dependencies
 RUN dpkg --add-architecture armhf
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 2156bdb28d..9ee997aa54 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -1,9 +1,9 @@
 #
 # Docker mipsel cross-compiler target
 #
-# This docker target builds on the base debian image.
+# This docker target builds on the debian Stretch base image.
 #
-FROM qemu:debian
+FROM qemu:debian9
 MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
 
 # Add the foreign architecture we want and install dependencies
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian9.docker
similarity index 62%
rename from tests/docker/dockerfiles/debian.docker
rename to tests/docker/dockerfiles/debian9.docker
index 10953b2425..c74f71283c 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian9.docker
@@ -1,13 +1,13 @@
 #
 # Docker multiarch cross-compiler target
 #
-# This docker target is builds on Debian and Emdebian's cross compiler targets
-# to build distro with a selection of cross compilers for building test binaries.
+# This docker target is builds on Debian cross compiler targets to build distro
+# with a selection of cross compilers for building test binaries.
 #
 # On its own you can't build much but the docker-foo-cross targets
 # build on top of the base debian image.
 #
-FROM debian:stable-slim
+FROM debian:stretch-slim
 
 # Duplicate deb line as deb-src
 RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
@@ -17,4 +17,9 @@ RUN apt update
 RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt install -y --no-install-recommends \
-    ca-certificates build-essential clang git bison flex
+        bison \
+        build-essential \
+        ca-certificates \
+        clang \
+        flex \
+        git
-- 
2.13.2


[Qemu-devel] [PATCH v2 06/31] docker: add common packages to debian base
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian9.docker | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker
index c74f71283c..6b6bf41421 100644
--- a/tests/docker/dockerfiles/debian9.docker
+++ b/tests/docker/dockerfiles/debian9.docker
@@ -18,8 +18,11 @@ RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt install -y --no-install-recommends \
         bison \
+        binutils-multiarch \
         build-essential \
         ca-certificates \
         clang \
         flex \
-        git
+        git \
+        pkg-config \
+        python-minimal
-- 
2.13.2


[Qemu-devel] [PATCH v2 07/31] docker: debian/s390x no more in unstable, now available in Stretch
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include                      |  1 +
 tests/docker/dockerfiles/debian-s390x-cross.docker | 20 ++++++++++----------
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 72bb52ad7b..84dce49655 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -59,6 +59,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
 docker-image-debian-mipsel-cross: docker-image-debian9
+docker-image-debian-s390x-cross: docker-image-debian9
 
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(DOCKER_IMAGES), \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index cfc354ce5d..667e428a4c 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -1,27 +1,27 @@
 #
 # Docker s390 cross-compiler target
 #
-# This docker target is based on stretch (testing) as the stable build
-# doesn't have the cross compiler available.
+# This docker target builds on the debian Stretch base image.
 #
-FROM debian:testing-slim
-
-# Duplicate deb line as deb-src
-RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> /etc/apt/sources.list
+FROM qemu:debian9
 
 # Add the s390x architecture
 RUN dpkg --add-architecture s390x
 
 # Grab the updated list of packages
 RUN apt update && apt dist-upgrade -yy
-RUN apt install -yy build-essential clang
-RUN apt-get build-dep -yy -a s390x qemu || apt-get -f install
-RUN apt install -yy gcc-multilib-s390x-linux-gnu binutils-multiarch
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        gcc-multilib-s390x-linux-gnu
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a s390x qemu
 
 # Specify the cross prefix for this image (see tests/docker/common.rc)
 ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu-
 
-RUN DEBIAN_FRONTEND=noninteractive \
+# Install extra libraries to increase code coverage
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
         glusterfs-common:s390x \
         libbz2-dev:s390x \
-- 
2.13.2


[Qemu-devel] [PATCH v2 08/31] docker: remove packages now dependent of qemu in Stretch
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian-arm64-cross.docker  | 3 ---
 tests/docker/dockerfiles/debian-armhf-cross.docker  | 3 ---
 tests/docker/dockerfiles/debian-mipsel-cross.docker | 3 ---
 tests/docker/dockerfiles/debian-s390x-cross.docker  | 3 ---
 4 files changed, 12 deletions(-)

diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index f1bfa64160..6ed12a3f6e 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -19,11 +19,8 @@ ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
 
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
-        glusterfs-common:arm64 \
         libbz2-dev:arm64 \
         liblzo2-dev:arm64 \
-        libncursesw5-dev:arm64 \
-        libnfs-dev:arm64 \
         librdmacm-dev:arm64 \
         libsnappy-dev:arm64 \
         libxen-dev:arm64
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 2beacef49b..5100b0afc0 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -19,11 +19,8 @@ ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
 
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
-        glusterfs-common:armhf \
         libbz2-dev:armhf \
         liblzo2-dev:armhf \
-        libncursesw5-dev:armhf \
-        libnfs-dev:armhf \
         librdmacm-dev:armhf \
         libsnappy-dev:armhf \
         libxen-dev:armhf
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 9ee997aa54..eb279c5044 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -20,10 +20,7 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get build-dep -yy -a mipsel qemu
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
-        glusterfs-common:mipsel \
         libbz2-dev:mipsel \
         liblzo2-dev:mipsel \
-        libncursesw5-dev:mipsel \
-        libnfs-dev:mipsel \
         librdmacm-dev:mipsel \
         libsnappy-dev:mipsel
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 667e428a4c..e188bfeda4 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -23,10 +23,7 @@ ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu-
 # Install extra libraries to increase code coverage
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
-        glusterfs-common:s390x \
         libbz2-dev:s390x \
         liblzo2-dev:s390x \
-        libncursesw5-dev:s390x \
-        libnfs-dev:s390x \
         librdmacm-dev:s390x \
         libsnappy-dev:s390x
-- 
2.13.2


[Qemu-devel] [PATCH v2 09/31] docker: optimize debian9 base image
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/dockerfiles/debian9.docker | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker
index 6b6bf41421..056e5389cc 100644
--- a/tests/docker/dockerfiles/debian9.docker
+++ b/tests/docker/dockerfiles/debian9.docker
@@ -18,11 +18,12 @@ RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt install -y --no-install-recommends \
         bison \
-        binutils-multiarch \
         build-essential \
         ca-certificates \
-        clang \
         flex \
         git \
         pkg-config \
-        python-minimal
+        psmisc \
+        python \
+        texinfo \
+        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
-- 
2.13.2


[Qemu-devel] [PATCH v2 10/31] docker: add debian/armel based on Stretch
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include                      |  1 +
 tests/docker/dockerfiles/debian-armel-cross.docker | 24 ++++++++++++++++++++++
 2 files changed, 25 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-armel-cross.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 84dce49655..db66b6f802 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -56,6 +56,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 		"BUILD","$*")
 
 # Enforce dependancies for composite images
+docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
 docker-image-debian-mipsel-cross: docker-image-debian9
diff --git a/tests/docker/dockerfiles/debian-armel-cross.docker b/tests/docker/dockerfiles/debian-armel-cross.docker
new file mode 100644
index 0000000000..e3bd68f51e
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-armel-cross.docker
@@ -0,0 +1,24 @@
+#
+# Docker armel cross-compiler target
+#
+# This docker target builds on the debian Stretch base image.
+#
+FROM qemu:debian9
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture armel && \
+    apt update
+RUN apt install -yy crossbuild-essential-armel
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a armel qemu
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabi-
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        libbz2-dev:armel \
+        liblzo2-dev:armel \
+        librdmacm-dev:armel \
+        libsnappy-dev:armel
-- 
2.13.2


[Qemu-devel] [PATCH v2 11/31] docker: add debian/ppc64el based on Stretch
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include                      |  1 +
 .../docker/dockerfiles/debian-ppc64el-cross.docker | 25 ++++++++++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-ppc64el-cross.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index db66b6f802..553465ef6d 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -60,6 +60,7 @@ docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
 docker-image-debian-mipsel-cross: docker-image-debian9
+docker-image-debian-ppc64el-cross: docker-image-debian9
 docker-image-debian-s390x-cross: docker-image-debian9
 
 # Expand all the pre-requistes for each docker image and test combination
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
new file mode 100644
index 0000000000..f44a35880a
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -0,0 +1,25 @@
+#
+# Docker ppc64el cross-compiler target
+#
+# This docker target builds on the debian Stretch base image.
+#
+FROM qemu:debian9
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture ppc64el && \
+    apt update
+RUN apt install -yy crossbuild-essential-ppc64el
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a ppc64el qemu
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu-
+
+# Install extra libraries to increase code coverage
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        libbz2-dev:ppc64el \
+        liblzo2-dev:ppc64el \
+        librdmacm-dev:ppc64el \
+        libsnappy-dev:ppc64el
-- 
2.13.2


[Qemu-devel] [PATCH v2 12/31] docker: add debian/amd64 based on Stretch
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
By itself this doesn't add much to our coverage. However later patches
will extend this image to include more bleeding edge libraries which
are not yet widely available in distros.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[AJB: extend commit msg]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include                |  1 +
 tests/docker/dockerfiles/debian-amd64.docker | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-amd64.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 553465ef6d..b5eec5dc68 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -56,6 +56,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 		"BUILD","$*")
 
 # Enforce dependancies for composite images
+docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker
new file mode 100644
index 0000000000..2ab76120a4
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-amd64.docker
@@ -0,0 +1,18 @@
+#
+# Docker x86_64 target
+#
+# This docker target builds on the debian Stretch base image.
+#
+FROM qemu:debian9
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy qemu
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        libbz2-dev \
+        liblzo2-dev \
+        librdmacm-dev \
+        libsnappy-dev \
+        libvte-dev
-- 
2.13.2


[Qemu-devel] [PATCH v2 13/31] docker: enable virgl to extend code coverage on amd64
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[AJB: mv, comments in dockerfile]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian-amd64.docker | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker
index 2ab76120a4..360ecf0360 100644
--- a/tests/docker/dockerfiles/debian-amd64.docker
+++ b/tests/docker/dockerfiles/debian-amd64.docker
@@ -1,7 +1,8 @@
 #
 # Docker x86_64 target
 #
-# This docker target builds on the debian Stretch base image.
+# This docker target builds on the debian Stretch base image. Further
+# libraries which are not widely available are installed by hand.
 #
 FROM qemu:debian9
 MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
@@ -16,3 +17,12 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         librdmacm-dev \
         libsnappy-dev \
         libvte-dev
+
+# virgl
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        libegl1-mesa-dev \
+        libepoxy-dev \
+        libgbm-dev
+RUN git clone git://anongit.freedesktop.org/virglrenderer /usr/src/virglrenderer
+RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure --with-glx --disable-tests && make install
-- 
2.13.2


[Qemu-devel] [PATCH v2 14/31] docker: enable netmap to extend code coverage on amd64
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian-amd64.docker | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker
index 360ecf0360..71bcfc14d5 100644
--- a/tests/docker/dockerfiles/debian-amd64.docker
+++ b/tests/docker/dockerfiles/debian-amd64.docker
@@ -26,3 +26,11 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         libgbm-dev
 RUN git clone git://anongit.freedesktop.org/virglrenderer /usr/src/virglrenderer
 RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure --with-glx --disable-tests && make install
+
+# netmap
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        linux-headers-amd64
+RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
+RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install
+ENV QEMU_CONFIGURE_OPTS --enable-netmap
-- 
2.13.2


[Qemu-devel] [PATCH v2 15/31] docker: enable gcrypt to extend code coverage on amd64
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian-amd64.docker | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker
index 71bcfc14d5..eb13f06ed1 100644
--- a/tests/docker/dockerfiles/debian-amd64.docker
+++ b/tests/docker/dockerfiles/debian-amd64.docker
@@ -34,3 +34,6 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
 RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
 RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install
 ENV QEMU_CONFIGURE_OPTS --enable-netmap
+
+# gcrypt
+ENV QEMU_CONFIGURE_OPTS $QEMU_CONFIGURE_OPTS --enable-gcrypt
-- 
2.13.2


[Qemu-devel] [PATCH v2 16/31] docker: enable nettle to extend code coverage on arm64
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian-arm64-cross.docker | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 6ed12a3f6e..877d863475 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -24,3 +24,6 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         librdmacm-dev:arm64 \
         libsnappy-dev:arm64 \
         libxen-dev:arm64
+
+# nettle
+ENV QEMU_CONFIGURE_OPTS $QEMU_CONFIGURE_OPTS --enable-nettle
-- 
2.13.2


[Qemu-devel] [PATCH v2 17/31] shippable: add armel targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .shippable.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.shippable.yml b/.shippable.yml
index 5e0caa65c5..abcaf6f4d4 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -5,6 +5,8 @@ env:
   global:
     - LC_ALL=C
   matrix:
+    - IMAGE=debian-armel-cross
+      TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
     - IMAGE=debian-armhf-cross
       TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
     - IMAGE=debian-arm64-cross
-- 
2.13.2


[Qemu-devel] [PATCH v2 18/31] shippable: add ppc64el targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .shippable.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.shippable.yml b/.shippable.yml
index abcaf6f4d4..189d193da5 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -16,6 +16,8 @@ env:
     # mips64el-softmmu disabled due to libfdt problem
     - IMAGE=debian-mipsel-cross
       TARGET_LIST=mipsel-softmmu,mipsel-linux-user,mips64el-linux-user
+    - IMAGE=debian-ppc64el-cross
+      TARGET_LIST=ppc64-softmmu,ppc64-linux-user,ppc64abi32-linux-user
 build:
   pre_ci:
     - make docker-image-${IMAGE} V=1
-- 
2.13.2


[Qemu-devel] [PATCH v2 19/31] shippable: add x86_64 targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[AJB: minor tweak to name]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .shippable.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.shippable.yml b/.shippable.yml
index 189d193da5..1f92ace8f7 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -5,6 +5,8 @@ env:
   global:
     - LC_ALL=C
   matrix:
+    - IMAGE=debian-amd64
+      TARGET_LIST=x86_64-softmmu,x86_64-linux-user
     - IMAGE=debian-armel-cross
       TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
     - IMAGE=debian-armhf-cross
-- 
2.13.2


[Qemu-devel] [PATCH v2 20/31] util/cacheinfo: add missing include
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
This include was forgotten when splitting cacheinfo.c out of
tcg/ppc/tcg-target.inc.c (see commit b255b2c8).

While compiling on powerpc:

      CC      util/cacheinfo.o
    qemu/util/cacheinfo.c: In function 'arch_cache_info':
    qemu/util/cacheinfo.c:137:33: error: 'AT_ICACHEBSIZE' undeclared (first use in this function)
             *isize = qemu_getauxval(AT_ICACHEBSIZE);
                                     ^
    qemu/util/cacheinfo.c:137:33: note: each undeclared identifier is reported only once for each function it appears in
    qemu/util/cacheinfo.c:140:33: error: 'AT_DCACHEBSIZE' undeclared (first use in this function)
             *dsize = qemu_getauxval(AT_DCACHEBSIZE);
                                     ^
    qemu/rules.mak:66: recipe for target 'util/cacheinfo.o' failed
    make: *** [util/cacheinfo.o] Error 1

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 util/cacheinfo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/util/cacheinfo.c b/util/cacheinfo.c
index 6253049533..593940f27b 100644
--- a/util/cacheinfo.c
+++ b/util/cacheinfo.c
@@ -129,6 +129,7 @@ static void arch_cache_info(int *isize, int *dsize)
 }
 
 #elif defined(_ARCH_PPC) && defined(__linux__)
+# include "elf.h"
 
 static void arch_cache_info(int *isize, int *dsize)
 {
-- 
2.13.2


[Qemu-devel] [PATCH v2 21/31] docker: add qemu:debian-jessie based on outdated jessie release
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian8.docker | 36 +++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian8.docker

diff --git a/tests/docker/dockerfiles/debian8.docker b/tests/docker/dockerfiles/debian8.docker
new file mode 100644
index 0000000000..3d09b4b462
--- /dev/null
+++ b/tests/docker/dockerfiles/debian8.docker
@@ -0,0 +1,36 @@
+#
+# Docker multiarch cross-compiler target
+#
+# This docker target is builds on Debian and Emdebian's cross compiler targets
+# to build distro with a selection of cross compilers for building test binaries.
+#
+# On its own you can't build much but the docker-foo-cross targets
+# build on top of the base debian image.
+#
+FROM debian:jessie-slim
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Duplicate deb line as deb-src
+RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
+
+# Setup some basic tools we need
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        bison \
+        binutils-multiarch \
+        build-essential \
+        ca-certificates \
+        clang \
+        curl \
+        flex \
+        git \
+        gnupg \
+        pkg-config \
+        python-minimal
+
+# Setup Emdebian [emdebian-archive-keyring]
+RUN echo "deb http://emdebian.org/tools/debian/ jessie main" > /etc/apt/sources.list.d/emdebian.list && \
+    curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
-- 
2.13.2


[Qemu-devel] [PATCH v2 22/31] docker: add 'apt-fake' script which generate fake debian packages
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/debian-apt-fake.sh | 46 +++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh

diff --git a/tests/docker/dockerfiles/debian-apt-fake.sh b/tests/docker/dockerfiles/debian-apt-fake.sh
new file mode 100755
index 0000000000..2ec0fdf47a
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-apt-fake.sh
@@ -0,0 +1,46 @@
+#! /bin/sh
+#
+# Generate fake debian package to resolve unimportant unmet dependencies held
+# by upstream multiarch broken packages.
+#
+# Copyright (c) 2017 Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2
+# or (at your option) any later version. See the COPYING file in
+# the top-level directory.
+
+test $1 = "install" && shift 1
+
+fake_install()
+{
+    echo "Generating fake $2 $1 $3 ..."
+    (cd /var/cache/apt/archives
+        (cat << 'EOF'
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: NAME
+Version: VERSION
+Maintainer: qemu-devel@nongnu.org
+Architecture: any
+Multi-Arch: same
+Description: fake NAME
+EOF
+        ) | sed s/NAME/$2/g | sed s/VERSION/$3/g > $2.control
+        equivs-build -a $1 $2.control 1>/dev/null 2>/dev/null
+        dpkg -i --force-overwrite $2_$3_$1.deb
+    )
+}
+
+try_install()
+{
+    name=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\1/")
+    arch=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\2/")
+    vers=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\3/")
+    apt-get install -q -yy $1 || fake_install $arch $name $vers
+}
+
+for package in $*; do
+    try_install $package
+done
-- 
2.13.2


[Qemu-devel] [PATCH v2 23/31] docker: add debian/powerpc based on Jessie
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
From: Alex Bennée <alex.bennee@linaro.org>

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
[AJB: split from merged patch]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include                      |  3 ++
 .../docker/dockerfiles/debian-powerpc-cross.docker | 40 ++++++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index b5eec5dc68..202efe9ee6 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -55,12 +55,15 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 		$(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
 		"BUILD","$*")
 
+docker-image-debian-powerpc-cross: EXTRA_FILES:=tests/docker/dockerfiles/debian-apt-fake.sh
+
 # Enforce dependancies for composite images
 docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
 docker-image-debian-mipsel-cross: docker-image-debian9
+docker-image-debian-powerpc-cross: docker-image-debian8
 docker-image-debian-ppc64el-cross: docker-image-debian9
 docker-image-debian-s390x-cross: docker-image-debian9
 
diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker
new file mode 100644
index 0000000000..a5dd46b4ac
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-powerpc-cross.docker
@@ -0,0 +1,40 @@
+#
+# Docker powerpc cross-compiler target
+#
+# This docker target builds on the debian Jessie base image.
+#
+FROM qemu:debian8
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture powerpc
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        crossbuild-essential-powerpc
+
+# <kludge> to fix "following packages have unmet dependencies" ...
+ADD debian-apt-fake.sh /usr/local/bin/apt-fake
+RUN apt-get install -y --no-install-recommends \
+        equivs \
+        pkg-config
+RUN apt-fake install \
+        pkg-config:powerpc=0.28-1.1-fake && \
+    ln -s pkg-config /usr/bin/powerpc-linux-gnu-pkg-config
+ENV PKG_CONFIG_PATH /usr/lib/powerpc-linux-gnu/pkgconfig
+# </kludge>
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc-linux-gnu-
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a powerpc qemu
+RUN DEBIAN_FRONTEND=noninteractive \
+    apt-get install -y --no-install-recommends \
+        glusterfs-common:powerpc \
+        libbz2-dev:powerpc \
+        liblzo2-dev:powerpc \
+        libncursesw5-dev:powerpc \
+        libnfs-dev:powerpc \
+        librdmacm-dev:powerpc \
+        libsnappy-dev:powerpc
-- 
2.13.2


[Qemu-devel] [PATCH v2 24/31] shippable: add powerpc target
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .shippable.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.shippable.yml b/.shippable.yml
index 1f92ace8f7..fa54df6cff 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -18,6 +18,8 @@ env:
     # mips64el-softmmu disabled due to libfdt problem
     - IMAGE=debian-mipsel-cross
       TARGET_LIST=mipsel-softmmu,mipsel-linux-user,mips64el-linux-user
+    - IMAGE=debian-powerpc-cross
+      TARGET_LIST=ppc-softmmu,ppcemb-softmmu,ppc-linux-user
     - IMAGE=debian-ppc64el-cross
       TARGET_LIST=ppc64-softmmu,ppc64-linux-user,ppc64abi32-linux-user
 build:
-- 
2.13.2


[Qemu-devel] [PATCH v2 25/31] docker: add debian/mips[eb] images
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
change image mips little -> big endian

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/Makefile.include                      |  2 +-
 tests/docker/dockerfiles/debian-mips-cross.docker  | 29 ++++++++++++++++++++++
 .../docker/dockerfiles/debian-mipsel-cross.docker  |  9 ++++---
 3 files changed, 36 insertions(+), 4 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-mips-cross.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 202efe9ee6..e0807c0917 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -62,7 +62,7 @@ docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
-docker-image-debian-mipsel-cross: docker-image-debian9
+docker-image-debian-mips-cross: docker-image-debian9
 docker-image-debian-powerpc-cross: docker-image-debian8
 docker-image-debian-ppc64el-cross: docker-image-debian9
 docker-image-debian-s390x-cross: docker-image-debian9
diff --git a/tests/docker/dockerfiles/debian-mips-cross.docker b/tests/docker/dockerfiles/debian-mips-cross.docker
new file mode 100644
index 0000000000..550f43281b
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-mips-cross.docker
@@ -0,0 +1,29 @@
+#
+# Docker mips cross-compiler target
+#
+# This docker target builds on the debian Stretch base image.
+#
+FROM qemu:debian9
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture mips
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        gcc-mips-linux-gnu
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a mips qemu
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips-linux-gnu-
+
+# Install extra libraries to increase code coverage
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        libbz2-dev:mips \
+        liblzo2-dev:mips \
+        librdmacm-dev:mips \
+        libsnappy-dev:mips
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index eb279c5044..6378bd41e7 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -4,6 +4,7 @@
 # This docker target builds on the debian Stretch base image.
 #
 FROM qemu:debian9
+
 MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
 
 # Add the foreign architecture we want and install dependencies
@@ -11,13 +12,15 @@ RUN dpkg --add-architecture mipsel
 RUN apt-get update
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
-        crossbuild-essential-mipsel
+        gcc-mipsel-linux-gnu
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a mipsel qemu
 
 # Specify the cross prefix for this image (see tests/docker/common.rc)
 ENV QEMU_CONFIGURE_OPTS --cross-prefix=mipsel-linux-gnu-
 
-RUN DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get build-dep -yy -a mipsel qemu
+# Install extra libraries to increase code coverage
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
         libbz2-dev:mipsel \
-- 
2.13.2


[Qemu-devel] [PATCH v2 26/31] shippable: use debian/mips[eb] targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
previous commit change image mips little -> big endian

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .shippable.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.shippable.yml b/.shippable.yml
index fa54df6cff..f2a904014a 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -16,8 +16,8 @@ env:
     - IMAGE=debian-s390x-cross
       TARGET_LIST=s390x-softmmu,s390x-linux-user
     # mips64el-softmmu disabled due to libfdt problem
-    - IMAGE=debian-mipsel-cross
-      TARGET_LIST=mipsel-softmmu,mipsel-linux-user,mips64el-linux-user
+    - IMAGE=debian-mips-cross
+      TARGET_LIST=mips-softmmu,mipsel-linux-user
     - IMAGE=debian-powerpc-cross
       TARGET_LIST=ppc-softmmu,ppcemb-softmmu,ppc-linux-user
     - IMAGE=debian-ppc64el-cross
-- 
2.13.2


[Qemu-devel] [PATCH v2 27/31] docker: add debian/mips64el image
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/Makefile.include                      |  1 +
 .../dockerfiles/debian-mips64el-cross.docker       | 30 ++++++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-mips64el-cross.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index e0807c0917..5a8283674a 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -63,6 +63,7 @@ docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
 docker-image-debian-mips-cross: docker-image-debian9
+docker-image-debian-mips64el-cross: docker-image-debian9
 docker-image-debian-powerpc-cross: docker-image-debian8
 docker-image-debian-ppc64el-cross: docker-image-debian9
 docker-image-debian-s390x-cross: docker-image-debian9
diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
new file mode 100644
index 0000000000..fd2aafeb01
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -0,0 +1,30 @@
+#
+# Docker mips64el cross-compiler target
+#
+# This docker target builds on the debian Stretch base image.
+#
+
+FROM qemu:debian9
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture mips64el && \
+    apt-get update
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        gcc-mips64el-linux-gnuabi64
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get build-dep -yy -a mips64el qemu
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips64el-linux-gnuabi64-
+
+# Install extra libraries to increase code coverage
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        libbz2-dev:mips64el \
+        liblzo2-dev:mips64el \
+        librdmacm-dev:mips64el \
+        libsnappy-dev:mips64el
-- 
2.13.2


[Qemu-devel] [PATCH v2 28/31] shippable: add mips64el targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .shippable.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.shippable.yml b/.shippable.yml
index f2a904014a..53b43b349f 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -15,9 +15,10 @@ env:
       TARGET_LIST=aarch64-softmmu,aarch64-linux-user
     - IMAGE=debian-s390x-cross
       TARGET_LIST=s390x-softmmu,s390x-linux-user
-    # mips64el-softmmu disabled due to libfdt problem
     - IMAGE=debian-mips-cross
       TARGET_LIST=mips-softmmu,mipsel-linux-user
+    - IMAGE=debian-mips64el-cross
+      TARGET_LIST=mips64el-softmmu,mips64el-linux-user
     - IMAGE=debian-powerpc-cross
       TARGET_LIST=ppc-softmmu,ppcemb-softmmu,ppc-linux-user
     - IMAGE=debian-ppc64el-cross
-- 
2.13.2


[Qemu-devel] [PATCH v2 29/31] docker: add MXE (M cross environment) base image for MinGW-w64
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
see http://mxe.cc/

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/Makefile.include                      |  3 ++
 tests/docker/dockerfiles/debian-win32-cross.docker | 32 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian-win64-cross.docker | 32 ++++++++++++++++++++++
 tests/docker/dockerfiles/debian8-mxe.docker        | 18 ++++++++++++
 4 files changed, 85 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-win64-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian8-mxe.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 5a8283674a..e993e149e7 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -58,6 +58,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 docker-image-debian-powerpc-cross: EXTRA_FILES:=tests/docker/dockerfiles/debian-apt-fake.sh
 
 # Enforce dependancies for composite images
+docker-image-debian8-mxe: docker-image-debian8
 docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
@@ -67,6 +68,8 @@ docker-image-debian-mips64el-cross: docker-image-debian9
 docker-image-debian-powerpc-cross: docker-image-debian8
 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
 
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(DOCKER_IMAGES), \
diff --git a/tests/docker/dockerfiles/debian-win32-cross.docker b/tests/docker/dockerfiles/debian-win32-cross.docker
new file mode 100644
index 0000000000..a628601f6d
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-win32-cross.docker
@@ -0,0 +1,32 @@
+#
+# Docker mingw32 cross-compiler target
+#
+# This docker target builds on the debian Jessie MXE base image.
+#
+FROM qemu:debian8-mxe
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+ENV TARGET i686
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+		mxe-$TARGET-w64-mingw32.shared-bzip2 \
+		mxe-$TARGET-w64-mingw32.shared-curl \
+		mxe-$TARGET-w64-mingw32.shared-glib \
+		mxe-$TARGET-w64-mingw32.shared-libgcrypt \
+		mxe-$TARGET-w64-mingw32.shared-libssh2 \
+		mxe-$TARGET-w64-mingw32.shared-libusb1 \
+		mxe-$TARGET-w64-mingw32.shared-lzo \
+		mxe-$TARGET-w64-mingw32.shared-nettle \
+		mxe-$TARGET-w64-mingw32.shared-ncurses \
+		mxe-$TARGET-w64-mingw32.shared-pixman \
+		mxe-$TARGET-w64-mingw32.shared-pkgconf \
+		mxe-$TARGET-w64-mingw32.shared-pthreads \
+		mxe-$TARGET-w64-mingw32.shared-sdl2 \
+		mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
+		mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
+		mxe-$TARGET-w64-mingw32.shared-zlib
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=$TARGET-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian-win64-cross.docker b/tests/docker/dockerfiles/debian-win64-cross.docker
new file mode 100644
index 0000000000..32b1da0a34
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-win64-cross.docker
@@ -0,0 +1,32 @@
+#
+# Docker mingw64 cross-compiler target
+#
+# This docker target builds on the debian Jessie MXE base image.
+#
+FROM qemu:debian8-mxe
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+ENV TARGET x86-64
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+		mxe-$TARGET-w64-mingw32.shared-bzip2 \
+		mxe-$TARGET-w64-mingw32.shared-curl \
+		mxe-$TARGET-w64-mingw32.shared-glib \
+		mxe-$TARGET-w64-mingw32.shared-libgcrypt \
+		mxe-$TARGET-w64-mingw32.shared-libssh2 \
+		mxe-$TARGET-w64-mingw32.shared-libusb1 \
+		mxe-$TARGET-w64-mingw32.shared-lzo \
+		mxe-$TARGET-w64-mingw32.shared-nettle \
+		mxe-$TARGET-w64-mingw32.shared-ncurses \
+		mxe-$TARGET-w64-mingw32.shared-pixman \
+		mxe-$TARGET-w64-mingw32.shared-pkgconf \
+		mxe-$TARGET-w64-mingw32.shared-pthreads \
+		mxe-$TARGET-w64-mingw32.shared-sdl2 \
+		mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
+		mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
+		mxe-$TARGET-w64-mingw32.shared-zlib
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian8-mxe.docker b/tests/docker/dockerfiles/debian8-mxe.docker
new file mode 100644
index 0000000000..ffebf485c0
--- /dev/null
+++ b/tests/docker/dockerfiles/debian8-mxe.docker
@@ -0,0 +1,18 @@
+#
+# Docker mingw cross-compiler target
+#
+# This docker target builds on the debian Jessie base image.
+#
+FROM qemu:debian8
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN http_proxy= apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB && \
+    echo "deb http://pkg.mxe.cc/repos/apt/debian jessie main" > /etc/apt/sources.list.d/mxeapt.list
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+		$(apt-get -s install -y --no-install-recommends gw32.shared-mingw-w64 gw32.shared-mingw-w64 | egrep "^Inst mxe-x86-64-unknown-" | cut -d\  -f2)
+
+ENV PATH $PATH:/usr/lib/mxe/usr/bin/ 
-- 
2.13.2


[Qemu-devel] [PATCH v2 30/31] shippable: add win32/64 targets
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .shippable.yml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/.shippable.yml b/.shippable.yml
index 53b43b349f..dd4bbc84b1 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -7,6 +7,10 @@ env:
   matrix:
     - IMAGE=debian-amd64
       TARGET_LIST=x86_64-softmmu,x86_64-linux-user
+    - IMAGE=debian-win32-cross
+      TARGET_LIST=arm-softmmu,i386-softmmu,lm32-softmmu
+    - IMAGE=debian-win64-cross
+      TARGET_LIST=aarch64-softmmu,sparc64-softmmu,x86_64-softmmu
     - IMAGE=debian-armel-cross
       TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
     - IMAGE=debian-armhf-cross
-- 
2.13.2


[Qemu-devel] [PATCH v2 31/31] docker: add debian Ports base image
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/dockerfiles/debian-ports.docker | 34 ++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-ports.docker

diff --git a/tests/docker/dockerfiles/debian-ports.docker b/tests/docker/dockerfiles/debian-ports.docker
new file mode 100644
index 0000000000..907ebdef62
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-ports.docker
@@ -0,0 +1,34 @@
+#
+# Docker multiarch cross-compiler target
+#
+# This docker target is builds on Debian Ports cross compiler targets
+# to build distro with a selection of cross compilers for building test binaries.
+#
+# On its own you can't build much but the docker-foo-cross targets
+# build on top of the base debian image.
+#
+FROM debian:unstable
+
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+RUN echo "deb [arch=amd64] http://deb.debian.org/debian unstable main" > /etc/apt/sources.list
+
+# Duplicate deb line as deb-src
+RUN cat /etc/apt/sources.list | sed -ne "s/^deb\ \(\[.*\]\ \)\?\(.*\)/deb-src \2/p" >> /etc/apt/sources.list
+
+# Setup some basic tools we need
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -yy eatmydata
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        bison \
+        build-essential \
+        ca-certificates \
+        debian-ports-archive-keyring \
+        flex \
+        git \
+        pkg-config \
+        psmisc \
+        python \
+        texinfo \
+        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
-- 
2.13.2