* [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets
@ 2017-05-08 22:17 Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 01/21] docker: let _copy_with_mkdir() sub_path argument be optional Philippe Mathieu-Daudé
` (21 more replies)
0 siblings, 22 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
This patchset add 2 more architectures to the cross-build farm.
There is still some issue trying to cross-build mips64el-softmmu, it seems the
cross tools use the system outdated libfdt instead of the one checkouted in the
dtc submodule. I disabled this target for now.
The branch https://github.com/philmd/qemu/tree/docker_shippable_v2 can be
checked at Shippable:
https://app.shippable.com/github/philmd/qemu/status/dashboard
With the free open source projects service, each arch builds in around ~8min,
the 5 jobs take ~38min in total.
v2:
- Addressed review feedback from Alex, added his R-B
- Fixed the "Problem with the SSL CA cert" problem while cloning from github.com
installing the ca-certificates package.
- Squashed/split some commits
- use 'apt-get clean' instead of brutal 'rm -rf'
- checked how many cores are available on Shippable and use them fully
(reduced total time from 44min to 38min)
- build armeb-linux-user target
v1:
- Reorganize Dockerfiles to use less layers, resulting in smaller images.
This also reduce time of image transfer, for example while using:
`docker save qemu:debian | ssh remote docker load`
- Install more debian packages so the configure script enable more features and
more code can be compiled/covered.
- There are still some incorrect multiarch packages on debian/jessie used in
the docker images, add a script to generate fake packages and avoid
dependencies issues.
- Modify the docker.py script to include an extra file while building images.
Regards,
Phil.
Philippe Mathieu-Daudé (21):
docker: let _copy_with_mkdir() sub_path argument be optional
docker: add --include-file argument to 'build' command
docker: add 'apt-fake' script which generate fake debian packages
docker: install ca-certificates package in base image
docker: compact debian base
docker: compact debian armhf
docker: compact debian arm64
docker: add extra libs to armhf target to extend codebase coverage
docker: add extra libs to arm64 target to extend codebase coverage
docker: add extra libs to s390x target to extend codebase coverage
docker: add mipsel build target
docker: add powerpc build target
shippable: use C locale to simplify console output
shippable: build using all available cpus
shippable: do not initialize submodules automatically
shippable: be verbose while building docker images
shippable: add armeb-linux-user target
shippable: add powerpc target
shippable: add mipsel target
MAINTAINERS: add Shippable automation platform URL
MAINTAINERS: self-appoint me as reviewer in build/test automation
.shippable.yml | 23 +++++++++--
MAINTAINERS | 2 +
tests/docker/Makefile.include | 8 +++-
tests/docker/docker.py | 7 +++-
tests/docker/dockerfiles/debian-apt-fake.sh | 46 ++++++++++++++++++++++
tests/docker/dockerfiles/debian-arm64-cross.docker | 16 ++++++--
tests/docker/dockerfiles/debian-armhf-cross.docker | 16 ++++++--
.../docker/dockerfiles/debian-mipsel-cross.docker | 31 +++++++++++++++
.../docker/dockerfiles/debian-powerpc-cross.docker | 31 +++++++++++++++
tests/docker/dockerfiles/debian-s390x-cross.docker | 6 +++
tests/docker/dockerfiles/debian.docker | 26 ++++++------
11 files changed, 186 insertions(+), 26 deletions(-)
create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh
create mode 100644 tests/docker/dockerfiles/debian-mipsel-cross.docker
create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
--
2.11.0
^ permalink raw reply [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 01/21] docker: let _copy_with_mkdir() sub_path argument be optional
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command Philippe Mathieu-Daudé
` (20 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/docker.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 8747f6a440..6ddc6e4c2a 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -52,7 +52,7 @@ def _guess_docker_command():
raise Exception("Cannot find working docker command. Tried:\n%s" % \
commands_txt)
-def _copy_with_mkdir(src, root_dir, sub_path):
+def _copy_with_mkdir(src, root_dir, sub_path='.'):
"""Copy src into root_dir, creating sub_path as needed."""
dest_dir = os.path.normpath("%s/%s" % (root_dir, sub_path))
try:
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 01/21] docker: let _copy_with_mkdir() sub_path argument be optional Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-09 4:01 ` Fam Zheng
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 03/21] docker: add 'apt-fake' script which generate fake debian packages Philippe Mathieu-Daudé
` (19 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/Makefile.include | 3 ++-
tests/docker/docker.py | 5 +++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 03eda37bf4..c99ce702ea 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -51,7 +51,8 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
$(SRC_PATH)/tests/docker/docker.py build qemu:$* $< \
$(if $V,,--quiet) $(if $(NOCACHE),--no-cache) \
$(if $(NOUSER),,--add-current-user) \
- $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
+ $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE))\
+ $(if $(EXTRA_FILE),--include-file=$(EXTRA_FILE)),\
"BUILD","$*")
# Enforce dependancies for composite images
diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 6ddc6e4c2a..90520e4bca 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -237,6 +237,9 @@ class BuildCommand(SubCommand):
help="""Specify a binary that will be copied to the
container together with all its dependent
libraries""")
+ parser.add_argument("--include-file", "-f",
+ help="""Specify a file that will be copied to the
+ container""")
parser.add_argument("--add-current-user", "-u", dest="user",
action="store_true",
help="Add the current user to image's passwd")
@@ -274,6 +277,8 @@ class BuildCommand(SubCommand):
if args.include_executable:
_copy_binary_with_libs(args.include_executable,
docker_dir)
+ if args.include_file:
+ _copy_with_mkdir(args.include_file, docker_dir)
argv += ["--build-arg=" + k.lower() + "=" + v
for k, v in os.environ.iteritems()
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 03/21] docker: add 'apt-fake' script which generate fake debian packages
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 01/21] docker: let _copy_with_mkdir() sub_path argument be optional Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 04/21] docker: install ca-certificates package in base image Philippe Mathieu-Daudé
` (18 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Aurelien Jarno,
Riku Voipio, Vagrant Cascadian, Michael Tokarev
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.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..387522c174
--- /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 $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.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 04/21] docker: install ca-certificates package in base image
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 03/21] docker: add 'apt-fake' script which generate fake debian packages Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 05/21] docker: compact debian base Philippe Mathieu-Daudé
` (17 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
Resolve SSL verification issue at shippable container's git_sync stage:
shippable logs:
--------------
git_sync
- ssh-agent bash -c 'ssh-add /tmp/ssh/01_deploy; git clone https://github.com/philmd/qemu.git /root/src/github.com/philmd/qemu'
Identity added: /tmp/ssh/01_deploy (rsa w/o comment)
Cloning into '/root/src/github.com/philmd/qemu'...
fatal: unable to access 'https://github.com/philmd/qemu.git/': Problem with the SSL CA cert (path? access rights?)
retrying 1 of 3 times...
Suggested-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian.docker | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index 52bd79938e..d08def6a8d 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -11,7 +11,7 @@ FROM debian:stable-slim
# Setup some basic tools we need
RUN apt update
-RUN apt install -yy curl aptitude
+RUN apt install -yy aptitude ca-certificates curl
# Setup Emdebian
RUN echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 05/21] docker: compact debian base
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 04/21] docker: install ca-certificates package in base image Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-09 4:04 ` Fam Zheng
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 06/21] docker: compact debian armhf Philippe Mathieu-Daudé
` (16 subsequent siblings)
21 siblings, 1 reply; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
- install common/basic tools at once
- use eatmydata and remove apt cache to save space
- add bison and flex and git
- create deb-src entry and setup Emdebian in the same layer
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian.docker | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index d08def6a8d..dcded3ce84 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -9,17 +9,17 @@
#
FROM debian:stable-slim
-# Setup some basic tools we need
-RUN apt update
-RUN apt install -yy aptitude ca-certificates curl
+# Install some basic tools and common build utilities
+RUN apt-get update && \
+ DEBIAN_FRONTEND=noninteractive apt-get install -yy \
+ eatmydata && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ aptitude ca-certificates curl \
+ build-essential clang git \
+ bison flex && \
+ apt-get clean
-# Setup Emdebian
-RUN echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list
-RUN curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
-
-# 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 apt install -yy build-essential clang
+# Duplicate deb line as deb-src, setup Emdebian
+RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> /etc/apt/sources.list && \
+ echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list && \
+ curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 06/21] docker: compact debian armhf
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 05/21] docker: compact debian base Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 07/21] docker: compact debian arm64 Philippe Mathieu-Daudé
` (15 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Peter Maydell, qemu-arm
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian-armhf-cross.docker | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 668d60aeb3..533e525971 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -6,10 +6,12 @@
FROM qemu:debian
# Add the foreign architecture we want and install dependencies
-RUN dpkg --add-architecture armhf
-RUN apt update
-RUN apt install -yy crossbuild-essential-armhf
-RUN apt-get build-dep -yy -a armhf qemu
+RUN dpkg --add-architecture armhf && \
+ apt-get update && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ crossbuild-essential-armhf
# Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata apt-get build-dep -yy -a armhf qemu
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 07/21] docker: compact debian arm64
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 06/21] docker: compact debian armhf Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 08/21] docker: add extra libs to armhf target to extend codebase coverage Philippe Mathieu-Daudé
` (14 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Peter Maydell, qemu-arm
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian-arm64-cross.docker | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 592b5d7055..12b30aae54 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -6,10 +6,12 @@
FROM qemu:debian
# Add the foreign architecture we want and install dependencies
-RUN dpkg --add-architecture arm64
-RUN apt update
-RUN apt install -yy crossbuild-essential-arm64
-RUN apt-get build-dep -yy -a arm64 qemu
+RUN dpkg --add-architecture arm64 && \
+ apt-get update && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ crossbuild-essential-arm64
# Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
+
+RUN DEBIAN_FRONTEND=noninteractive eatmydata apt-get build-dep -yy -a arm64 qemu
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 08/21] docker: add extra libs to armhf target to extend codebase coverage
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (6 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 07/21] docker: compact debian arm64 Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 09/21] docker: add extra libs to arm64 " Philippe Mathieu-Daudé
` (13 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Peter Maydell, qemu-arm
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian-armhf-cross.docker | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 533e525971..01d9fcb7f2 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -14,4 +14,10 @@ RUN dpkg --add-architecture armhf && \
# Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
-RUN DEBIAN_FRONTEND=noninteractive eatmydata apt-get build-dep -yy -a armhf qemu
+RUN DEBIAN_FRONTEND=noninteractive eatmydata apt-get build-dep -yy -a armhf qemu && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ glusterfs-common:armhf \
+ libncursesw5-dev:armhf libnfs-dev:armhf \
+ libbz2-dev:armhf liblzo2-dev:armhf \
+ libsnappy-dev:armhf librdmacm-dev:armhf \
+ libxen-dev:armhf
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 09/21] docker: add extra libs to arm64 target to extend codebase coverage
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (7 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 08/21] docker: add extra libs to armhf target to extend codebase coverage Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 10/21] docker: add extra libs to s390x " Philippe Mathieu-Daudé
` (12 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Peter Maydell, qemu-arm
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian-arm64-cross.docker | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 12b30aae54..5e0036917b 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -14,4 +14,10 @@ RUN dpkg --add-architecture arm64 && \
# Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
-RUN DEBIAN_FRONTEND=noninteractive eatmydata apt-get build-dep -yy -a arm64 qemu
+RUN DEBIAN_FRONTEND=noninteractive eatmydata apt-get build-dep -yy -a arm64 qemu && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ glusterfs-common:arm64 \
+ libncursesw5-dev:arm64 libnfs-dev:arm64 \
+ libbz2-dev:arm64 liblzo2-dev:arm64 \
+ libsnappy-dev:arm64 librdmacm-dev:arm64 \
+ libxen-dev:arm64
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 10/21] docker: add extra libs to s390x target to extend codebase coverage
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (8 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 09/21] docker: add extra libs to arm64 " Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 11/21] docker: add mipsel build target Philippe Mathieu-Daudé
` (11 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Richard Henderson,
Alexander Graf
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/dockerfiles/debian-s390x-cross.docker | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 3a687feda0..119b152971 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -20,3 +20,9 @@ RUN apt install -yy gcc-multilib-s390x-linux-gnu binutils-multiarch
# 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 apt-get install -y --no-install-recommends \
+ glusterfs-common:s390x \
+ libncursesw5-dev:s390x libnfs-dev:s390x \
+ libbz2-dev:s390x liblzo2-dev:s390x \
+ libsnappy-dev:s390x librdmacm-dev:s390x
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 11/21] docker: add mipsel build target
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (9 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 10/21] docker: add extra libs to s390x " Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 12/21] docker: add powerpc " Philippe Mathieu-Daudé
` (10 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Aurelien Jarno,
Yongbok Kim, Riku Voipio, Vagrant Cascadian, Michael Tokarev
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/Makefile.include | 3 +++
.../docker/dockerfiles/debian-mipsel-cross.docker | 31 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 tests/docker/dockerfiles/debian-mipsel-cross.docker
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index c99ce702ea..f34282a2cb 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -55,9 +55,12 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
$(if $(EXTRA_FILE),--include-file=$(EXTRA_FILE)),\
"BUILD","$*")
+docker-image-debian-mipsel-cross: EXTRA_FILE:=tests/docker/dockerfiles/debian-apt-fake.sh
+
# 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
# Expand all the pre-requistes for each docker image and test combination
$(foreach i,$(DOCKER_IMAGES), \
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
new file mode 100644
index 0000000000..e4e8d22a7c
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -0,0 +1,31 @@
+#
+# Docker mipsel cross-compiler target
+#
+# This docker target builds on the base debian image.
+#
+FROM qemu:debian
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture mipsel && \
+ apt-get update && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ crossbuild-essential-mipsel
+
+# <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 && \
+ apt-fake install pkgconf:mipsel=0.9.7-fake pkg-config:mipsel=0.28-1.1-fake && \
+ ln -s pkg-config /usr/bin/mipsel-linux-gnu-pkg-config
+ENV PKG_CONFIG_PATH /usr/lib/mipsel-linux-gnu/pkgconfig
+# </kludge>
+
+# 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 && \
+ DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
+ glusterfs-common:mipsel \
+ libncursesw5-dev:mipsel libnfs-dev:mipsel \
+ libbz2-dev:mipsel liblzo2-dev:mipsel \
+ libsnappy-dev:mipsel librdmacm-dev:mipsel
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 12/21] docker: add powerpc build target
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (10 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 11/21] docker: add mipsel build target Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 13/21] shippable: use C locale to simplify console output Philippe Mathieu-Daudé
` (9 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, David Gibson,
Alexander Graf, qemu-ppc, Aurelien Jarno, Riku Voipio,
Vagrant Cascadian, Michael Tokarev
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/docker/Makefile.include | 2 ++
.../docker/dockerfiles/debian-powerpc-cross.docker | 31 ++++++++++++++++++++++
2 files changed, 33 insertions(+)
create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index f34282a2cb..417d8ea576 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -56,11 +56,13 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
"BUILD","$*")
docker-image-debian-mipsel-cross: EXTRA_FILE:=tests/docker/dockerfiles/debian-apt-fake.sh
+docker-image-debian-powerpc-cross: EXTRA_FILE:=tests/docker/dockerfiles/debian-apt-fake.sh
# 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-powerpc-cross: docker-image-debian
# Expand all the pre-requistes for each docker image and test combination
$(foreach i,$(DOCKER_IMAGES), \
diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker
new file mode 100644
index 0000000000..e0d4c454cc
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-powerpc-cross.docker
@@ -0,0 +1,31 @@
+#
+# Docker powerpc cross-compiler target
+#
+# This docker target builds on the base debian image.
+#
+FROM qemu:debian
+MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+# Add the foreign architecture we want and install dependencies
+RUN dpkg --add-architecture powerpc && \
+ apt-get update && \
+ 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 && \
+ 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 && \
+ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ glusterfs-common:powerpc \
+ libncursesw5-dev:powerpc libnfs-dev:powerpc \
+ libbz2-dev:powerpc liblzo2-dev:powerpc \
+ libsnappy-dev:powerpc librdmacm-dev:powerpc
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 13/21] shippable: use C locale to simplify console output
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (11 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 12/21] docker: add powerpc " Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 14/21] shippable: build using all available cpus Philippe Mathieu-Daudé
` (8 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
remove this noise:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_CTYPE = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-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 653bd750fe..231c29b620 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -1,5 +1,7 @@
language: c
env:
+ global:
+ - LC_ALL=C
matrix:
- IMAGE=debian-armhf-cross
TARGET_LIST=arm-softmmu,arm-linux-user
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 14/21] shippable: build using all available cpus
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (12 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 13/21] shippable: use C locale to simplify console output Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 15/21] shippable: do not initialize submodules automatically Philippe Mathieu-Daudé
` (7 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
As of this commit:
$ echo "container proc:" `getconf _NPROCESSORS_ONLN` `getconf _NPROCESSORS_CONF`
container proc: 2 2
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
.shippable.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.shippable.yml b/.shippable.yml
index 231c29b620..1e3ae35dd9 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -20,4 +20,4 @@ build:
ci:
- unset CC
- ./configure ${QEMU_CONFIGURE_OPTS} --target-list=${TARGET_LIST}
- - make -j2
+ - make -j$(($(getconf _NPROCESSORS_ONLN) + 1))
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 15/21] shippable: do not initialize submodules automatically
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (13 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 14/21] shippable: build using all available cpus Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 16/21] shippable: be verbose while building docker images Philippe Mathieu-Daudé
` (6 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Aurelien Jarno,
Riku Voipio, Vagrant Cascadian, Michael Tokarev
Cc: Philippe Mathieu-Daudé
instead do it in the 'ci' target when needed.
for mips64el-softmmu target:
use dtc submodule if distrib packages are too old.
example with outdated libfdt on mips64el-softmmu target (required is >= 1.4.2):
# dpkg-query --showformat='${Version}\n' --show libfdt-dev
1.4.0+dfsg-1
shippable output:
----------------
LINK mips64el-softmmu/qemu-system-mips64el
../hw/core/loader-fit.o: In function `load_fit':
/root/src/github.com/philmd/qemu/hw/core/loader-fit.c:278: undefined reference to `fdt_first_subnode'
/root/src/github.com/philmd/qemu/hw/core/loader-fit.c:286: undefined reference to `fdt_next_subnode'
/root/src/github.com/philmd/qemu/hw/core/loader-fit.c:277: undefined reference to `fdt_first_subnode'
collect2: error: ld returned 1 exit status
Makefile:201: recipe for target 'qemu-system-mips64el' failed
make[1]: *** [qemu-system-mips64el] Error 1
Makefile:327: recipe for target 'subdir-mips64el-softmmu' failed
make: *** [subdir-mips64el-softmmu] Error 2
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
.shippable.yml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/.shippable.yml b/.shippable.yml
index 1e3ae35dd9..46adfa030f 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -1,4 +1,6 @@
language: c
+git:
+ submodules: false
env:
global:
- LC_ALL=C
@@ -19,5 +21,13 @@ build:
options: "-e HOME=/root"
ci:
- unset CC
+ # some targets require newer up to date packages, for example TARGET_LIST matching
+ # aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
+ # see the configure script:
+ # error_exit "DTC (libfdt) version >= 1.4.2 not present. Your options:"
+ # " (1) Preferred: Install the DTC (libfdt) devel package"
+ # " (2) Fetch the DTC submodule, using:"
+ # " git submodule update --init dtc"
+ - dpkg --compare-versions `dpkg-query --showformat='${Version}' --show libfdt-dev` ge 1.4.2 || git submodule update --init dtc
- ./configure ${QEMU_CONFIGURE_OPTS} --target-list=${TARGET_LIST}
- make -j$(($(getconf _NPROCESSORS_ONLN) + 1))
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 16/21] shippable: be verbose while building docker images
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (14 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 15/21] shippable: do not initialize submodules automatically Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 17/21] shippable: add armeb-linux-user target Philippe Mathieu-Daudé
` (5 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
.shippable.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.shippable.yml b/.shippable.yml
index 46adfa030f..fe360f85cb 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -13,7 +13,7 @@ env:
TARGET_LIST=s390x-softmmu,s390x-linux-user
build:
pre_ci:
- - make docker-image-${IMAGE}
+ - make docker-image-${IMAGE} V=1
pre_ci_boot:
image_name: qemu
image_tag: ${IMAGE}
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 17/21] shippable: add armeb-linux-user target
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (15 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 16/21] shippable: be verbose while building docker images Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 18/21] shippable: add powerpc target Philippe Mathieu-Daudé
` (4 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Peter Maydell, qemu-arm
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
.shippable.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.shippable.yml b/.shippable.yml
index fe360f85cb..2070c4d827 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -6,7 +6,7 @@ env:
- LC_ALL=C
matrix:
- IMAGE=debian-armhf-cross
- TARGET_LIST=arm-softmmu,arm-linux-user
+ TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
- IMAGE=debian-arm64-cross
TARGET_LIST=aarch64-softmmu,aarch64-linux-user
- IMAGE=debian-s390x-cross
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 18/21] shippable: add powerpc target
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (16 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 17/21] shippable: add armeb-linux-user target Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 19/21] shippable: add mipsel target Philippe Mathieu-Daudé
` (3 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, David Gibson,
Alexander Graf, qemu-ppc
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
.shippable.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.shippable.yml b/.shippable.yml
index 2070c4d827..aad66ec5ec 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -11,6 +11,8 @@ env:
TARGET_LIST=aarch64-softmmu,aarch64-linux-user
- IMAGE=debian-s390x-cross
TARGET_LIST=s390x-softmmu,s390x-linux-user
+ - IMAGE=debian-powerpc-cross
+ TARGET_LIST=ppc-softmmu,ppcemb-softmmu,ppc-linux-user
build:
pre_ci:
- make docker-image-${IMAGE} V=1
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 19/21] shippable: add mipsel target
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (17 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 18/21] shippable: add powerpc target Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 20/21] MAINTAINERS: add Shippable automation platform URL Philippe Mathieu-Daudé
` (2 subsequent siblings)
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng, Aurelien Jarno, Yongbok Kim
Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
.shippable.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.shippable.yml b/.shippable.yml
index aad66ec5ec..75c2895a21 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -13,6 +13,9 @@ env:
TARGET_LIST=s390x-softmmu,s390x-linux-user
- IMAGE=debian-powerpc-cross
TARGET_LIST=ppc-softmmu,ppcemb-softmmu,ppc-linux-user
+ # mips64el-softmmu disabled due to libfdt problem
+ - IMAGE=debian-mipsel-cross
+ TARGET_LIST=mipsel-softmmu,mipsel-linux-user,mips64el-linux-user
build:
pre_ci:
- make docker-image-${IMAGE} V=1
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 20/21] MAINTAINERS: add Shippable automation platform URL
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (18 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 19/21] shippable: add mipsel target Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 21/21] MAINTAINERS: self-appoint me as reviewer in build/test automation Philippe Mathieu-Daudé
2017-05-17 14:28 ` [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Alex Bennée
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index efdec47319..6d0770fdd0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1833,6 +1833,7 @@ F: .travis.yml
F: .shippable.yml
F: tests/docker/
W: https://travis-ci.org/qemu/qemu
+W: https://app.shippable.com/github/qemu/qemu
W: http://patchew.org/QEMU/
Documentation
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [Qemu-devel] [PATCH v2 21/21] MAINTAINERS: self-appoint me as reviewer in build/test automation
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (19 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 20/21] MAINTAINERS: add Shippable automation platform URL Philippe Mathieu-Daudé
@ 2017-05-08 22:17 ` Philippe Mathieu-Daudé
2017-05-17 14:28 ` [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Alex Bennée
21 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-08 22:17 UTC (permalink / raw)
To: qemu-devel, Alex Bennée, Fam Zheng; +Cc: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 6d0770fdd0..d61380837a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1827,6 +1827,7 @@ Build and test automation
-------------------------
M: Alex Bennée <alex.bennee@linaro.org>
M: Fam Zheng <famz@redhat.com>
+R: Philippe Mathieu-Daudé <f4bug@amsat.org>
L: qemu-devel@nongnu.org
S: Maintained
F: .travis.yml
--
2.11.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command Philippe Mathieu-Daudé
@ 2017-05-09 4:01 ` Fam Zheng
2017-05-09 12:14 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 32+ messages in thread
From: Fam Zheng @ 2017-05-09 4:01 UTC (permalink / raw)
To: Philippe Mathieu-Daudé; +Cc: qemu-devel, Alex Bennée
On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/docker/Makefile.include | 3 ++-
> tests/docker/docker.py | 5 +++++
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
> index 03eda37bf4..c99ce702ea 100644
> --- a/tests/docker/Makefile.include
> +++ b/tests/docker/Makefile.include
> @@ -51,7 +51,8 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
> $(SRC_PATH)/tests/docker/docker.py build qemu:$* $< \
> $(if $V,,--quiet) $(if $(NOCACHE),--no-cache) \
> $(if $(NOUSER),,--add-current-user) \
> - $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
> + $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE))\
> + $(if $(EXTRA_FILE),--include-file=$(EXTRA_FILE)),\
> "BUILD","$*")
>
> # Enforce dependancies for composite images
> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
> index 6ddc6e4c2a..90520e4bca 100755
> --- a/tests/docker/docker.py
> +++ b/tests/docker/docker.py
> @@ -237,6 +237,9 @@ class BuildCommand(SubCommand):
> help="""Specify a binary that will be copied to the
> container together with all its dependent
> libraries""")
> + parser.add_argument("--include-file", "-f",
> + help="""Specify a file that will be copied to the
> + container""")
Is it more useful if it's '--include-files' that accepts multiple files? Or
alternatively allow this option to be use multiple times:
-f foo -f bar -f ...
Similarly, should EXTRA_FILE be EXTRA_FILES or something?
We are already lacking this with --include-executable's documentation, but
please also document "where" is it copied to in the container's filesystem.
Fam
> parser.add_argument("--add-current-user", "-u", dest="user",
> action="store_true",
> help="Add the current user to image's passwd")
> @@ -274,6 +277,8 @@ class BuildCommand(SubCommand):
> if args.include_executable:
> _copy_binary_with_libs(args.include_executable,
> docker_dir)
> + if args.include_file:
> + _copy_with_mkdir(args.include_file, docker_dir)
>
> argv += ["--build-arg=" + k.lower() + "=" + v
> for k, v in os.environ.iteritems()
> --
> 2.11.0
>
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 05/21] docker: compact debian base
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 05/21] docker: compact debian base Philippe Mathieu-Daudé
@ 2017-05-09 4:04 ` Fam Zheng
2017-05-09 7:46 ` Alex Bennée
0 siblings, 1 reply; 32+ messages in thread
From: Fam Zheng @ 2017-05-09 4:04 UTC (permalink / raw)
To: Philippe Mathieu-Daudé; +Cc: qemu-devel, Alex Bennée
On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
> - install common/basic tools at once
> - use eatmydata and remove apt cache to save space
> - add bison and flex and git
> - create deb-src entry and setup Emdebian in the same layer
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/docker/dockerfiles/debian.docker | 26 +++++++++++++-------------
> 1 file changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> index d08def6a8d..dcded3ce84 100644
> --- a/tests/docker/dockerfiles/debian.docker
> +++ b/tests/docker/dockerfiles/debian.docker
> @@ -9,17 +9,17 @@
> #
> FROM debian:stable-slim
>
> -# Setup some basic tools we need
> -RUN apt update
> -RUN apt install -yy aptitude ca-certificates curl
> +# Install some basic tools and common build utilities
> +RUN apt-get update && \
> + DEBIAN_FRONTEND=noninteractive apt-get install -yy \
> + eatmydata && \
> + DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
> + aptitude ca-certificates curl \
> + build-essential clang git \
> + bison flex && \
> + apt-get clean
Any particular reason to make multiple "RUN" directives into one?
Fam
>
> -# Setup Emdebian
> -RUN echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list
> -RUN curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
> -
> -# 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 apt install -yy build-essential clang
> +# Duplicate deb line as deb-src, setup Emdebian
> +RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> /etc/apt/sources.list && \
> + echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list && \
> + curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
> --
> 2.11.0
>
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 05/21] docker: compact debian base
2017-05-09 4:04 ` Fam Zheng
@ 2017-05-09 7:46 ` Alex Bennée
2017-05-09 8:05 ` Fam Zheng
0 siblings, 1 reply; 32+ messages in thread
From: Alex Bennée @ 2017-05-09 7:46 UTC (permalink / raw)
To: Fam Zheng; +Cc: Philippe Mathieu-Daudé, qemu-devel
Fam Zheng <famz@redhat.com> writes:
> On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
>> - install common/basic tools at once
>> - use eatmydata and remove apt cache to save space
>> - add bison and flex and git
>> - create deb-src entry and setup Emdebian in the same layer
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> tests/docker/dockerfiles/debian.docker | 26 +++++++++++++-------------
>> 1 file changed, 13 insertions(+), 13 deletions(-)
>>
>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>> index d08def6a8d..dcded3ce84 100644
>> --- a/tests/docker/dockerfiles/debian.docker
>> +++ b/tests/docker/dockerfiles/debian.docker
>> @@ -9,17 +9,17 @@
>> #
>> FROM debian:stable-slim
>>
>> -# Setup some basic tools we need
>> -RUN apt update
>> -RUN apt install -yy aptitude ca-certificates curl
>> +# Install some basic tools and common build utilities
>> +RUN apt-get update && \
>> + DEBIAN_FRONTEND=noninteractive apt-get install -yy \
>> + eatmydata && \
>> + DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
>> + aptitude ca-certificates curl \
>> + build-essential clang git \
>> + bison flex && \
>> + apt-get clean
>
> Any particular reason to make multiple "RUN" directives into one?
It reduces the number of layers you generate during the building
process. I'm not sure how much space that saves in the long run though
(disk space is pretty cheap ;-).
>
> Fam
>
>>
>> -# Setup Emdebian
>> -RUN echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list
>> -RUN curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
>> -
>> -# 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 apt install -yy build-essential clang
>> +# Duplicate deb line as deb-src, setup Emdebian
>> +RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> /etc/apt/sources.list && \
>> + echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list && \
>> + curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
>> --
>> 2.11.0
>>
--
Alex Bennée
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 05/21] docker: compact debian base
2017-05-09 7:46 ` Alex Bennée
@ 2017-05-09 8:05 ` Fam Zheng
2017-05-09 12:06 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 32+ messages in thread
From: Fam Zheng @ 2017-05-09 8:05 UTC (permalink / raw)
To: Alex Bennée; +Cc: Philippe Mathieu-Daudé, qemu-devel
On Tue, 05/09 08:46, Alex Bennée wrote:
>
> Fam Zheng <famz@redhat.com> writes:
>
> > On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
> >> - install common/basic tools at once
> >> - use eatmydata and remove apt cache to save space
> >> - add bison and flex and git
> >> - create deb-src entry and setup Emdebian in the same layer
> >>
> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >> ---
> >> tests/docker/dockerfiles/debian.docker | 26 +++++++++++++-------------
> >> 1 file changed, 13 insertions(+), 13 deletions(-)
> >>
> >> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> >> index d08def6a8d..dcded3ce84 100644
> >> --- a/tests/docker/dockerfiles/debian.docker
> >> +++ b/tests/docker/dockerfiles/debian.docker
> >> @@ -9,17 +9,17 @@
> >> #
> >> FROM debian:stable-slim
> >>
> >> -# Setup some basic tools we need
> >> -RUN apt update
> >> -RUN apt install -yy aptitude ca-certificates curl
> >> +# Install some basic tools and common build utilities
> >> +RUN apt-get update && \
> >> + DEBIAN_FRONTEND=noninteractive apt-get install -yy \
> >> + eatmydata && \
> >> + DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
> >> + aptitude ca-certificates curl \
> >> + build-essential clang git \
> >> + bison flex && \
> >> + apt-get clean
> >
> > Any particular reason to make multiple "RUN" directives into one?
>
> It reduces the number of layers you generate during the building
> process. I'm not sure how much space that saves in the long run though
> (disk space is pretty cheap ;-).
I don't think it matters much, but refreshing an image gets slower due to
coarser cache, for example when you add a package in the big "apt-get install"
command.
I don't see a strong reason why this is better. It clutters the file and is
inconsistent.
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 05/21] docker: compact debian base
2017-05-09 8:05 ` Fam Zheng
@ 2017-05-09 12:06 ` Philippe Mathieu-Daudé
2017-05-09 12:18 ` Fam Zheng
0 siblings, 1 reply; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:06 UTC (permalink / raw)
To: Fam Zheng, Alex Bennée; +Cc: qemu-devel
On 05/09/2017 05:05 AM, Fam Zheng wrote:
> On Tue, 05/09 08:46, Alex Bennée wrote:
>>
>> Fam Zheng <famz@redhat.com> writes:
>>
>>> On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
>>>> - install common/basic tools at once
>>>> - use eatmydata and remove apt cache to save space
>>>> - add bison and flex and git
>>>> - create deb-src entry and setup Emdebian in the same layer
>>>>
>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>> ---
>>>> tests/docker/dockerfiles/debian.docker | 26 +++++++++++++-------------
>>>> 1 file changed, 13 insertions(+), 13 deletions(-)
>>>>
>>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>>> index d08def6a8d..dcded3ce84 100644
>>>> --- a/tests/docker/dockerfiles/debian.docker
>>>> +++ b/tests/docker/dockerfiles/debian.docker
>>>> @@ -9,17 +9,17 @@
>>>> #
>>>> FROM debian:stable-slim
>>>>
>>>> -# Setup some basic tools we need
>>>> -RUN apt update
>>>> -RUN apt install -yy aptitude ca-certificates curl
>>>> +# Install some basic tools and common build utilities
>>>> +RUN apt-get update && \
>>>> + DEBIAN_FRONTEND=noninteractive apt-get install -yy \
>>>> + eatmydata && \
>>>> + DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
>>>> + aptitude ca-certificates curl \
>>>> + build-essential clang git \
>>>> + bison flex && \
>>>> + apt-get clean
>>>
>>> Any particular reason to make multiple "RUN" directives into one?
>>
>> It reduces the number of layers you generate during the building
>> process. I'm not sure how much space that saves in the long run though
>> (disk space is pretty cheap ;-).
>
> I don't think it matters much, but refreshing an image gets slower due to
> coarser cache, for example when you add a package in the big "apt-get install"
> command.
>
> I don't see a strong reason why this is better. It clutters the file and is
> inconsistent.
I'm living in a remote place where Internet is pretty bad so it does
save me some time to have reduced layer while using 'docker save |
docker load', but no worry :)
I'll revert this patch and just add bison/flex/git packages, and
eventually keep DEBIAN_FRONTEND=noninteractive to avoid harmless error
messages.
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command
2017-05-09 4:01 ` Fam Zheng
@ 2017-05-09 12:14 ` Philippe Mathieu-Daudé
2017-05-09 12:31 ` Fam Zheng
0 siblings, 1 reply; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:14 UTC (permalink / raw)
To: Fam Zheng; +Cc: qemu-devel, Alex Bennée
On 05/09/2017 01:01 AM, Fam Zheng wrote:
> On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> tests/docker/Makefile.include | 3 ++-
>> tests/docker/docker.py | 5 +++++
>> 2 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index 03eda37bf4..c99ce702ea 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -51,7 +51,8 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
>> $(SRC_PATH)/tests/docker/docker.py build qemu:$* $< \
>> $(if $V,,--quiet) $(if $(NOCACHE),--no-cache) \
>> $(if $(NOUSER),,--add-current-user) \
>> - $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
>> + $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE))\
>> + $(if $(EXTRA_FILE),--include-file=$(EXTRA_FILE)),\
>> "BUILD","$*")
>>
>> # Enforce dependancies for composite images
>> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
>> index 6ddc6e4c2a..90520e4bca 100755
>> --- a/tests/docker/docker.py
>> +++ b/tests/docker/docker.py
>> @@ -237,6 +237,9 @@ class BuildCommand(SubCommand):
>> help="""Specify a binary that will be copied to the
>> container together with all its dependent
>> libraries""")
>> + parser.add_argument("--include-file", "-f",
>> + help="""Specify a file that will be copied to the
>> + container""")
>
> Is it more useful if it's '--include-files' that accepts multiple files? Or
> alternatively allow this option to be use multiple times:
>
> -f foo -f bar -f ...
I agree, since I'm not confident with Python so I tried to touch as
little as possible.
One iter I'm thinking about do a consistent rename with the
"dockerfiles/%.docker -> docker.d/%/Dockerfile" pattern and adding git
symlinks to required EXTRA_FILES in each dir, to avoid the call to
docker.py and be able to build/push images on hub.docker.com directly.
> Similarly, should EXTRA_FILE be EXTRA_FILES or something?
Yes.
> We are already lacking this with --include-executable's documentation, but
> please also document "where" is it copied to in the container's filesystem.
Ok.
Thank for the review,
Phil.
> Fam
>
>> parser.add_argument("--add-current-user", "-u", dest="user",
>> action="store_true",
>> help="Add the current user to image's passwd")
>> @@ -274,6 +277,8 @@ class BuildCommand(SubCommand):
>> if args.include_executable:
>> _copy_binary_with_libs(args.include_executable,
>> docker_dir)
>> + if args.include_file:
>> + _copy_with_mkdir(args.include_file, docker_dir)
>>
>> argv += ["--build-arg=" + k.lower() + "=" + v
>> for k, v in os.environ.iteritems()
>> --
>> 2.11.0
>>
>
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 05/21] docker: compact debian base
2017-05-09 12:06 ` Philippe Mathieu-Daudé
@ 2017-05-09 12:18 ` Fam Zheng
0 siblings, 0 replies; 32+ messages in thread
From: Fam Zheng @ 2017-05-09 12:18 UTC (permalink / raw)
To: Philippe Mathieu-Daudé; +Cc: Alex Bennée, qemu-devel
On Tue, 05/09 09:06, Philippe Mathieu-Daudé wrote:
> On 05/09/2017 05:05 AM, Fam Zheng wrote:
> > On Tue, 05/09 08:46, Alex Bennée wrote:
> > >
> > > Fam Zheng <famz@redhat.com> writes:
> > >
> > > > On Mon, 05/08 19:17, Philippe Mathieu-Daudé wrote:
> > > > > - install common/basic tools at once
> > > > > - use eatmydata and remove apt cache to save space
> > > > > - add bison and flex and git
> > > > > - create deb-src entry and setup Emdebian in the same layer
> > > > >
> > > > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > > > > ---
> > > > > tests/docker/dockerfiles/debian.docker | 26 +++++++++++++-------------
> > > > > 1 file changed, 13 insertions(+), 13 deletions(-)
> > > > >
> > > > > diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> > > > > index d08def6a8d..dcded3ce84 100644
> > > > > --- a/tests/docker/dockerfiles/debian.docker
> > > > > +++ b/tests/docker/dockerfiles/debian.docker
> > > > > @@ -9,17 +9,17 @@
> > > > > #
> > > > > FROM debian:stable-slim
> > > > >
> > > > > -# Setup some basic tools we need
> > > > > -RUN apt update
> > > > > -RUN apt install -yy aptitude ca-certificates curl
> > > > > +# Install some basic tools and common build utilities
> > > > > +RUN apt-get update && \
> > > > > + DEBIAN_FRONTEND=noninteractive apt-get install -yy \
> > > > > + eatmydata && \
> > > > > + DEBIAN_FRONTEND=noninteractive eatmydata apt-get install -y --no-install-recommends \
> > > > > + aptitude ca-certificates curl \
> > > > > + build-essential clang git \
> > > > > + bison flex && \
> > > > > + apt-get clean
> > > >
> > > > Any particular reason to make multiple "RUN" directives into one?
> > >
> > > It reduces the number of layers you generate during the building
> > > process. I'm not sure how much space that saves in the long run though
> > > (disk space is pretty cheap ;-).
> >
> > I don't think it matters much, but refreshing an image gets slower due to
> > coarser cache, for example when you add a package in the big "apt-get install"
> > command.
> >
> > I don't see a strong reason why this is better. It clutters the file and is
> > inconsistent.
>
> I'm living in a remote place where Internet is pretty bad so it does save me
> some time to have reduced layer while using 'docker save | docker load', but
> no worry :)
Shouldn't 'docker save' collapse the layers anyway and output final data?
On the contrary, Docker build cache saves me time too when I play with the
package list, as 'apt-get update' result is cached in a previous RUN directive,
and doesn't need to run again and again. (Yes, I live in a place where "apt-get
update" is slow :)
Fam
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command
2017-05-09 12:14 ` Philippe Mathieu-Daudé
@ 2017-05-09 12:31 ` Fam Zheng
0 siblings, 0 replies; 32+ messages in thread
From: Fam Zheng @ 2017-05-09 12:31 UTC (permalink / raw)
To: Philippe Mathieu-Daudé; +Cc: qemu-devel, Alex Bennée
On Tue, 05/09 09:14, Philippe Mathieu-Daudé wrote:
> >
> > Is it more useful if it's '--include-files' that accepts multiple files? Or
> > alternatively allow this option to be use multiple times:
> >
> > -f foo -f bar -f ...
>
> I agree, since I'm not confident with Python so I tried to touch as little
> as possible.
>
> One iter I'm thinking about do a consistent rename with the
> "dockerfiles/%.docker -> docker.d/%/Dockerfile" pattern and adding git
> symlinks to required EXTRA_FILES in each dir, to avoid the call to docker.py
> and be able to build/push images on hub.docker.com directly.
Originally I thought about "$QEMU/tests/docker/dockerfiles/$IMAGE/Dockerfile"
but that sounded too fussy.
"$QEMU/tests/docker/docker.d/$IMAGE/Dockerfile" is a bit better.
But I'm not sure doing that can allow us to remove the necessity of docker.py -
it does more such as calling .pre and passing in env vars etc..
Fam
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
` (20 preceding siblings ...)
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 21/21] MAINTAINERS: self-appoint me as reviewer in build/test automation Philippe Mathieu-Daudé
@ 2017-05-17 14:28 ` Alex Bennée
2017-05-20 23:57 ` Philippe Mathieu-Daudé
21 siblings, 1 reply; 32+ messages in thread
From: Alex Bennée @ 2017-05-17 14:28 UTC (permalink / raw)
To: Philippe Mathieu-Daudé; +Cc: qemu-devel, Fam Zheng
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
> This patchset add 2 more architectures to the cross-build farm.
>
> There is still some issue trying to cross-build mips64el-softmmu, it seems the
> cross tools use the system outdated libfdt instead of the one checkouted in the
> dtc submodule. I disabled this target for now.
>
> The branch https://github.com/philmd/qemu/tree/docker_shippable_v2 can be
> checked at Shippable:
> https://app.shippable.com/github/philmd/qemu/status/dashboard
>
> With the free open source projects service, each arch builds in around ~8min,
> the 5 jobs take ~38min in total.
>
> v2:
> - Addressed review feedback from Alex, added his R-B
> - Fixed the "Problem with the SSL CA cert" problem while cloning from github.com
> installing the ca-certificates package.
> - Squashed/split some commits
> - use 'apt-get clean' instead of brutal 'rm -rf'
> - checked how many cores are available on Shippable and use them fully
> (reduced total time from 44min to 38min)
> - build armeb-linux-user target
Ping - is there a v3 coming with Fam's comments addressed?
<snip>
--
Alex Bennée
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets
2017-05-17 14:28 ` [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Alex Bennée
@ 2017-05-20 23:57 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 32+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-20 23:57 UTC (permalink / raw)
To: Alex Bennée, Fam Zheng; +Cc: qemu-devel
Hi Alex,
On 05/17/2017 11:28 AM, Alex Bennée wrote:
>> v2:
>> - Addressed review feedback from Alex, added his R-B
>> - Fixed the "Problem with the SSL CA cert" problem while cloning from github.com
>> installing the ca-certificates package.
>> - Squashed/split some commits
>> - use 'apt-get clean' instead of brutal 'rm -rf'
>> - checked how many cores are available on Shippable and use them fully
>> (reduced total time from 44min to 38min)
>> - build armeb-linux-user target
>
> Ping - is there a v3 coming with Fam's comments addressed?
I did address Fam's comment, I'm not sure about how Fam wanted to
document "where" extra files are copied to in the container's filesystem
but tried to improve what was here.
There is an issue when you add files with the ADD directive, if any file
is changed the script generates the same SHA1 hash and avoid to rebuild
the image, I added some lines to also consider per-file checksum, but
not for the shlibs case (I let a FIXME entry for that).
I then got stuck trying to improve `--include-executable`, I think the
correct way would be to use ldd to get linked libraries from the host,
then try to install them in the guest from the distrib packages, and
finally copy what can't be find in the guest.
But better let it for another serie.
Regards,
Phil.
^ permalink raw reply [flat|nested] 32+ messages in thread
end of thread, other threads:[~2017-05-20 23:57 UTC | newest]
Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-08 22:17 [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 01/21] docker: let _copy_with_mkdir() sub_path argument be optional Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 02/21] docker: add --include-file argument to 'build' command Philippe Mathieu-Daudé
2017-05-09 4:01 ` Fam Zheng
2017-05-09 12:14 ` Philippe Mathieu-Daudé
2017-05-09 12:31 ` Fam Zheng
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 03/21] docker: add 'apt-fake' script which generate fake debian packages Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 04/21] docker: install ca-certificates package in base image Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 05/21] docker: compact debian base Philippe Mathieu-Daudé
2017-05-09 4:04 ` Fam Zheng
2017-05-09 7:46 ` Alex Bennée
2017-05-09 8:05 ` Fam Zheng
2017-05-09 12:06 ` Philippe Mathieu-Daudé
2017-05-09 12:18 ` Fam Zheng
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 06/21] docker: compact debian armhf Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 07/21] docker: compact debian arm64 Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 08/21] docker: add extra libs to armhf target to extend codebase coverage Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 09/21] docker: add extra libs to arm64 " Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 10/21] docker: add extra libs to s390x " Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 11/21] docker: add mipsel build target Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 12/21] docker: add powerpc " Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 13/21] shippable: use C locale to simplify console output Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 14/21] shippable: build using all available cpus Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 15/21] shippable: do not initialize submodules automatically Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 16/21] shippable: be verbose while building docker images Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 17/21] shippable: add armeb-linux-user target Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 18/21] shippable: add powerpc target Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 19/21] shippable: add mipsel target Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 20/21] MAINTAINERS: add Shippable automation platform URL Philippe Mathieu-Daudé
2017-05-08 22:17 ` [Qemu-devel] [PATCH v2 21/21] MAINTAINERS: self-appoint me as reviewer in build/test automation Philippe Mathieu-Daudé
2017-05-17 14:28 ` [Qemu-devel] [PATCH v2 00/21] docker/shippable: cross-build mipsel and powerpc targets Alex Bennée
2017-05-20 23:57 ` Philippe Mathieu-Daudé
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.