From 6ca9f7fedbfe97bece72cd6eac0a8be4a9a3898a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 17 Jul 2017 21:31:29 -0300 Subject: docker: allow customizing Travis global_env variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is useful so that we can do builds at higher than -j3 when running travis.py locally. Signed-off-by: Paolo Bonzini Signed-off-by: Alex Bennée --- tests/docker/travis.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/docker/travis.py b/tests/docker/travis.py index 8dcc964..703a7fd 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 \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"]) -- cgit v1.1 From dca34e8c4e8cffb112a8cdc8c1ddd9dc93d1ffcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Jul 2017 21:31:31 -0300 Subject: docker: include python-yaml in travis.docker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Fam Zheng Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/travis.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker index e4983ae..a315f66a 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 -- cgit v1.1 From ed7023b05b06a38fc32ca5ef9a8c49d6fcbad572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Jul 2017 21:31:32 -0300 Subject: docker: add debug tools to travis.docker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Fam Zheng Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/travis.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker index a315f66a..636fa59 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 -- cgit v1.1 From 24044d48251fc9cd163e005a3d41d299819d2092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:33 -0300 Subject: docker: rename debian stable -> 9 (Stretch) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We'll also want to support some older Debian combinations for architectures that didn't make the Debian 9 cut. Signed-off-by: Philippe Mathieu-Daudé [AJB: extend commit msg] Signed-off-by: Alex Bennée --- tests/docker/Makefile.include | 6 +++--- tests/docker/dockerfiles/debian-arm64-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-armhf-cross.docker | 4 ++-- .../docker/dockerfiles/debian-mipsel-cross.docker | 4 ++-- tests/docker/dockerfiles/debian.docker | 20 ----------------- tests/docker/dockerfiles/debian9.docker | 25 ++++++++++++++++++++++ 6 files changed, 34 insertions(+), 29 deletions(-) delete mode 100644 tests/docker/dockerfiles/debian.docker create mode 100644 tests/docker/dockerfiles/debian9.docker (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 012a2fc..72bb52a 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 45b891d..f1bfa64 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 e67dfdc..2beacef 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 2156bdb..9ee997a 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é # Add the foreign architecture we want and install dependencies diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker deleted file mode 100644 index 10953b2..0000000 --- a/tests/docker/dockerfiles/debian.docker +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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:stable-slim - -# Duplicate deb line as deb-src -RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list - -# Install common build utilities -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 diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker new file mode 100644 index 0000000..c74f712 --- /dev/null +++ b/tests/docker/dockerfiles/debian9.docker @@ -0,0 +1,25 @@ +# +# Docker multiarch cross-compiler target +# +# 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:stretch-slim + +# Duplicate deb line as deb-src +RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list + +# Install common build utilities +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt install -y --no-install-recommends \ + bison \ + build-essential \ + ca-certificates \ + clang \ + flex \ + git -- cgit v1.1 From 94afe49eab9b2292b386fde72107aab012d2d91c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:34 -0300 Subject: docker: add common packages to debian base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian9.docker | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker index c74f712..6b6bf41 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 -- cgit v1.1 From 7d2bcf23638ccca2a63b4a4ee5d2ae5f22244101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:35 -0300 Subject: docker: debian/s390x no more in unstable, now available in Stretch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-s390x-cross.docker | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 72bb52a..84dce49 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 cfc354c..667e428 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 \ -- cgit v1.1 From 2a444f55eb65cb746adad0f8166c3bc143073c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:36 -0300 Subject: docker: remove packages now dependent of qemu in Stretch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- 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(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker index f1bfa64..6ed12a3 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 2beacef..5100b0a 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 9ee997a..eb279c5 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 667e428..e188bfe 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 -- cgit v1.1 From aaa6ccc9ffda85af8fa9ef319de21bf998d85878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:37 -0300 Subject: docker: optimize debian9 base image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian9.docker | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker index 6b6bf41..056e538 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) -- cgit v1.1 From 31e205d1bf6041c4a254ed6ab2b203d8acf03989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:38 -0300 Subject: docker: add debian/armel based on Stretch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 84dce49..db66b6f 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 0000000..e3bd68f --- /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é + +# 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 -- cgit v1.1 From 2b1c10bdcf98917ce27a6e3ec1419d3423764c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:39 -0300 Subject: docker: add debian/ppc64el based on Stretch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index db66b6f..553465e 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 0000000..f44a358 --- /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 -- cgit v1.1 From 15288046e0b19098397cbb792b8ed30064c8c584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:40 -0300 Subject: docker: add debian/amd64 based on Stretch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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é [AJB: extend commit msg] Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 553465e..b5eec5d 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 0000000..2ab7612 --- /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é + +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 -- cgit v1.1 From b2e771742586b4f434608b901f1805573ab066bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:41 -0300 Subject: docker: enable virgl to extend code coverage on amd64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé [AJB: mv, comments in dockerfile] Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-amd64.docker | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker index 2ab7612..360ecf0 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é @@ -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 -- cgit v1.1 From 0cf01f5b4ab2991521b4b8b1044f573f1c6c6c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:42 -0300 Subject: docker: enable netmap to extend code coverage on amd64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-amd64.docker | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker index 360ecf0..71bcfc1 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 -- cgit v1.1 From 6f8bbb374be6bda03fbdadcd2253a7fc070966b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:43 -0300 Subject: docker: enable gcrypt to extend code coverage on amd64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-amd64.docker | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker index 71bcfc1..eb13f06 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 -- cgit v1.1 From c705b8617ba30fe8755d54ca8acb2408a7546179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:44 -0300 Subject: docker: enable nettle to extend code coverage on arm64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-arm64-cross.docker | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker index 6ed12a3..877d863 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 -- cgit v1.1 From a3cf6b19617d3343fa75789d5d487f5d5bf620b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:49 -0300 Subject: docker: add qemu:debian-jessie based on outdated jessie release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian8.docker | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/docker/dockerfiles/debian8.docker (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian8.docker b/tests/docker/dockerfiles/debian8.docker new file mode 100644 index 0000000..3d09b4b --- /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é + +# 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 - -- cgit v1.1 From bec45514e5862a1c022314d079558989e894e81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:50 -0300 Subject: docker: add 'apt-fake' script which generate fake debian packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-apt-fake.sh | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-apt-fake.sh b/tests/docker/dockerfiles/debian-apt-fake.sh new file mode 100755 index 0000000..2ec0fdf --- /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é +# +# 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 -- cgit v1.1 From 16dcece4d5792bf51caa9a455b985e1ae6dd736f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Jul 2017 21:31:51 -0300 Subject: docker: add debian/powerpc based on Jessie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée [AJB: split from merged patch] Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index b5eec5d..202efe9 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 0000000..a5dd46b --- /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é + +# 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 + +# 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 +# + +# 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 -- cgit v1.1 From 4319db7b1357f1256b6cfd92e82fbb7e7f999f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:53 -0300 Subject: docker: add debian/mips[eb] images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit change image mips little -> big endian Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 202efe9..e0807c0 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 0000000..550f432 --- /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é + +# 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 eb279c5..6378bd4 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é # 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 \ -- cgit v1.1 From fd7b284d79982784b4cd9f32b8282e3c5a7863ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 21:31:55 -0300 Subject: docker: add debian/mips64el image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index e0807c0..5a82836 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 0000000..fd2aafe --- /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é + +# 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 -- cgit v1.1 From 982e758af713044f716811d819a1b5978c6f5136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 23:47:09 -0300 Subject: docker: add MXE (M cross environment) base image for MinGW-w64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit see http://mxe.cc/ Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- 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 (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 5a82836..e993e14 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 0000000..dd021f2 --- /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é + +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 0000000..4542bcc --- /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é + +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 0000000..7bf1b59 --- /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é + +# 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/ -- cgit v1.1 From f847325106d6474f0d570d02e462de262ed00db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 23:47:11 -0300 Subject: docker: add debian Ports base image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-ports.docker | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-ports.docker (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian-ports.docker b/tests/docker/dockerfiles/debian-ports.docker new file mode 100644 index 0000000..fba224f --- /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é + +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) -- cgit v1.1 From 3e11974988d80149ccda0d16cc3f91781f601883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 23:47:12 -0300 Subject: docker: warn users to use newer debian8/debian9 base image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to stay backward incompatible. Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian.docker | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/docker/dockerfiles/debian.docker (limited to 'tests') diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index e993e14..aaab1a4 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 0000000..fd32e71 --- /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é + +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 -- cgit v1.1 From 118d1becc0e6332145bb9d6aee8ed232eed770e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 17 Jul 2017 23:47:13 -0300 Subject: docker: install clang since Shippable setup_ve() verify it is available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian9.docker | 1 + 1 file changed, 1 insertion(+) (limited to 'tests') diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker index 056e538..a450995 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 \ -- cgit v1.1