From patchwork Mon Feb 20 10:51:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 94196 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1279063obz; Mon, 20 Feb 2017 02:56:06 -0800 (PST) X-Received: by 10.200.53.69 with SMTP id z5mr5173619qtb.120.1487588166922; Mon, 20 Feb 2017 02:56:06 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id k30si12678325qta.168.2017.02.20.02.56.06 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 Feb 2017 02:56:06 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37422 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cfldW-0001lb-Ia for patch@linaro.org; Mon, 20 Feb 2017 05:56:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53383) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflZD-0006iD-HM for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cflZB-0006LN-Fh for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:39 -0500 Received: from mail-wr0-x22a.google.com ([2a00:1450:400c:c0c::22a]:33846) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cflZB-0006Ks-6c for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:37 -0500 Received: by mail-wr0-x22a.google.com with SMTP id z61so61481849wrc.1 for ; Mon, 20 Feb 2017 02:51:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ToJI48wpYt2cSHGncWIWs3TYvd4E/KCjfqEfpPY0T+I=; b=B0jC9JVIAgV20S9+0tMWYmfHQD2eYy4p3JzdAGcAfiqah+dsgZZbq5BoyfrAJK+Y/g VaWIRHsujsXABh2Rgrsqneg6ITiUYd5hE6EeuYeZxv6QknYkebnlVylrO3ivfMMElOQC SHpQ5MCx4noReYCahN0JPPkRBIDfURQQSO2h0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ToJI48wpYt2cSHGncWIWs3TYvd4E/KCjfqEfpPY0T+I=; b=H3Gjyql41AJxBynwlO8XMYV6KYO9tbyA5rDwJysJwmFPprijOnQ4m1hX3PiTVssIxI h2N4gTgFjHIPnkQ0rudVoIRaalmZVSx7kSahf3MywWlPof2qW/UfKWgVBVyov2ldN1LX U7suLiI+if9msHR4mpzM8o5PWrHjlrIZ5tVcei31/VyLe9vZ3xsPjoQrrtQA3z6KkAda GboUTDri2qQwPMyJzvdBqSRrDV2Z0ct9y2B5NhBzTCX42xvb4bsSftqVuiecXPD55wuu 9kKAtk9N965GLu9aBVUmkshD/lu2dCDkhvNiC2Wman8yWh0iy8basIjrG24uQSXzo4mP 60mw== X-Gm-Message-State: AMke39lKeyEnTE/uwG9sKx/SSgCtFT15ZBptNCuRFbY28e/m15QzakZY9vgA7cnYL1ox0Jid X-Received: by 10.223.167.138 with SMTP id j10mr12437219wrc.178.1487587896012; Mon, 20 Feb 2017 02:51:36 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id d75sm8825741wmd.25.2017.02.20.02.51.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Feb 2017 02:51:34 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id EC1BB3E014D; Mon, 20 Feb 2017 10:51:39 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: famz@redhat.com Date: Mon, 20 Feb 2017 10:51:36 +0000 Message-Id: <20170220105139.21581-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170220105139.21581-1-alex.bennee@linaro.org> References: <20170220105139.21581-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c0c::22a Subject: [Qemu-devel] [PATCH v5 1/4] tests/docker: add basic user mapping support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Currently all docker builds are done by exporting a tarball to the docker container and running the build as the containers root user. Other use cases are possible however and it is possible to map a part of users file-system to the container. This is useful for example for doing cross-builds of arbitrary source trees. For this to work smoothly the container needs to have a user created that maps cleanly to the host system. This adds a -u option to the docker script so that: DEB_ARCH=armhf DEB_TYPE=stable ./tests/docker/docker.py build \ -u --include-executable=arm-linux-user/qemu-arm \ debian:armhf ./tests/docker/dockerfiles/debian-bootstrap.docker Will build a container that can then be run like: docker run --rm -it -v /home/alex/lsrc/qemu/risu.git/:/src \ --user=alex:alex -w /src/ debian:armhf \ sh -c "make clean && ./configure -s && make" All docker containers built will add the current user unless explicitly disabled by specifying NOUSER when invoking the Makefile: make docker-image-debian-armhf-cross NOUSER=1 Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng Tested-by: Philippe Mathieu-Daudé Reviewed-by: Philippe Mathieu-Daudé --- v2 - write the useradd directly - change long option to --add-current-user v3 - images -> image's - add r-b - add USER to Makefile v4 - s/USER/NOUSER/ and default to on - fix the add-user code to skip if user already setup (for chained images) v5 - fix whitespace damage in Makefile - hide error messages from id when adding user - minor re-phrasing of NOUSER line --- tests/docker/Makefile.include | 2 ++ tests/docker/docker.py | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) -- 2.11.0 diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 3f15d5aea8..3b5ffecb04 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -50,6 +50,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker $(call quiet-command,\ $(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)),\ "BUILD","$*") @@ -99,6 +100,7 @@ docker: @echo ' (default is 1)' @echo ' DEBUG=1 Stop and drop to shell in the created container' @echo ' before running the command.' + @echo ' NOUSER Define to disable adding current user to containers passwd.' @echo ' NOCACHE=1 Ignore cache when build images.' @echo ' EXECUTABLE= Include executable in image.' diff --git a/tests/docker/docker.py b/tests/docker/docker.py index 37d83199e7..9fd32ab5fa 100755 --- a/tests/docker/docker.py +++ b/tests/docker/docker.py @@ -25,6 +25,7 @@ import signal from tarfile import TarFile, TarInfo from StringIO import StringIO from shutil import copy, rmtree +from pwd import getpwuid DEVNULL = open(os.devnull, 'wb') @@ -149,13 +150,21 @@ class Docker(object): labels = json.loads(resp)[0]["Config"].get("Labels", {}) return labels.get("com.qemu.dockerfile-checksum", "") - def build_image(self, tag, docker_dir, dockerfile, quiet=True, argv=None): + def build_image(self, tag, docker_dir, dockerfile, + quiet=True, user=False, argv=None): if argv == None: argv = [] tmp_df = tempfile.NamedTemporaryFile(dir=docker_dir, suffix=".docker") tmp_df.write(dockerfile) + if user: + uid = os.getuid() + uname = getpwuid(uid).pw_name + tmp_df.write("\n") + tmp_df.write("RUN id %s 2>/dev/null || useradd -u %d -U %s" % + (uname, uid, uname)) + tmp_df.write("\n") tmp_df.write("LABEL com.qemu.dockerfile-checksum=%s" % _text_checksum(dockerfile)) @@ -225,6 +234,9 @@ class BuildCommand(SubCommand): help="""Specify a binary that will be copied to the container together with all its dependent libraries""") + parser.add_argument("--add-current-user", "-u", dest="user", + action="store_true", + help="Add the current user to image's passwd") parser.add_argument("tag", help="Image Tag") parser.add_argument("dockerfile", @@ -261,7 +273,7 @@ class BuildCommand(SubCommand): docker_dir) dkr.build_image(tag, docker_dir, dockerfile, - quiet=args.quiet, argv=argv) + quiet=args.quiet, user=args.user, argv=argv) rmtree(docker_dir) From patchwork Mon Feb 20 10:51:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 94197 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1279675obz; Mon, 20 Feb 2017 02:58:00 -0800 (PST) X-Received: by 10.200.50.157 with SMTP id z29mr18207680qta.131.1487588280198; Mon, 20 Feb 2017 02:58:00 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id z59si12657728qtc.317.2017.02.20.02.57.59 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 Feb 2017 02:58:00 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37427 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflfL-0002yf-Mt for patch@linaro.org; Mon, 20 Feb 2017 05:57:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53423) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflZG-0006oB-H6 for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cflZF-0006Np-1J for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:42 -0500 Received: from mail-wm0-x235.google.com ([2a00:1450:400c:c09::235]:34418) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cflZE-0006NG-O8 for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:40 -0500 Received: by mail-wm0-x235.google.com with SMTP id 196so21563784wmm.1 for ; Mon, 20 Feb 2017 02:51:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IGINJRhCmW1vuPGuNIJUgpNJYt9PZusJjMFsTvW9PaY=; b=BkIqPUhAN6H0R+fCLwfk/8tpCcQ16kUjlLSS/C+4NEiAAkDbZjyrIikxQpS4A52XYt CW7UCaWBCk1iB4Z+vXpT7q98SIxfAWAy4BTV7BaH8x4euHDXfdBHQRxsD7IbVUJUGaiz +RqnOgnoQa+IqNxR4UadPaaMMsOMPWTt/xlRs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IGINJRhCmW1vuPGuNIJUgpNJYt9PZusJjMFsTvW9PaY=; b=UV4H7S1zenGtZKK7PVkC6dMH4HuEi1bbG12Lif6pj0/t701TV1bkPeJFp+7zvwT22l flvVwxdEawKPX7GMQKlkFUV4RQG1Ly5jvBCrUXH2kIXpfWXK2EvCRpRSfbHHqywK+viK JG+5ENyv4/sudaoRg1LFcGTXbp/raA9OENqe3G07NHczpH8nZ9YhlHckmr9zyL14idxI NUIk8epCNQfkia/xrrPy+cWjR8jN+bYDLjpk/3/fwaWtFIFExWcBJ8CBuT69A/cy3vKj Yg6vw2D/95NZlWqk/lmR5rUqoxuSwl4S5ZzdjnPsVGocSNyv2cyMhj5FypC7HIpEVyOG 51Bg== X-Gm-Message-State: AMke39lfnDZK8EvRndmSqlQJKZinY3urbFzWXeFgKSwczUAkHe2zMgBETSNr/tYzDW8bErHU X-Received: by 10.28.60.66 with SMTP id j63mr10272109wma.74.1487587899510; Mon, 20 Feb 2017 02:51:39 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id u189sm12949537wmu.1.2017.02.20.02.51.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Feb 2017 02:51:34 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 0CB203E0190; Mon, 20 Feb 2017 10:51:40 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: famz@redhat.com Date: Mon, 20 Feb 2017 10:51:37 +0000 Message-Id: <20170220105139.21581-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170220105139.21581-1-alex.bennee@linaro.org> References: <20170220105139.21581-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::235 Subject: [Qemu-devel] [PATCH v5 2/4] new: debian docker targets for cross-compiling X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This provides a basic Debian install with access to the emdebian cross compilers. The debian-armhf-cross and debian-arm64-cross targets build on the basic Debian image to allow cross compiling to those targets. A new environment variable (QEMU_CONFIGURE_OPTS) is set as part of the docker container and passed to the build to specify the --cross-prefix. The user still calls the build in the usual way, for example: make docker-test-build@debian-arm64-cross \ TARGET_LIST="aarch64-softmmu,aarch64-linux-user" Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng Reviewed-by: Philippe Mathieu-Daudé --- v2 - add clang (keep shippable happy) - rm adduser code (done direct now) - add aptitude (useful for debugging package clashes) v3 - split into debian, debian-armhf-cross and debian-aarch64-cross v4 - Add QEMU_CONFIGURE_OPTS v5 - s/dependacies/dependencies/ - add r-b --- tests/docker/Makefile.include | 4 ++++ tests/docker/common.rc | 2 +- tests/docker/dockerfiles/debian-arm64-cross.docker | 15 +++++++++++++ tests/docker/dockerfiles/debian-armhf-cross.docker | 15 +++++++++++++ tests/docker/dockerfiles/debian.docker | 25 ++++++++++++++++++++++ 5 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 tests/docker/dockerfiles/debian-arm64-cross.docker create mode 100644 tests/docker/dockerfiles/debian-armhf-cross.docker create mode 100644 tests/docker/dockerfiles/debian.docker -- 2.11.0 diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 3b5ffecb04..03eda37bf4 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -54,6 +54,10 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\ "BUILD","$*") +# Enforce dependancies for composite images +docker-image-debian-armhf-cross: docker-image-debian +docker-image-debian-arm64-cross: docker-image-debian + # Expand all the pre-requistes for each docker image and test combination $(foreach i,$(DOCKER_IMAGES), \ $(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \ diff --git a/tests/docker/common.rc b/tests/docker/common.rc index 21657e87c6..6865689bb5 100755 --- a/tests/docker/common.rc +++ b/tests/docker/common.rc @@ -29,7 +29,7 @@ build_qemu() config_opts="--enable-werror \ ${TARGET_LIST:+--target-list=${TARGET_LIST}} \ --prefix=$PWD/install \ - $EXTRA_CONFIGURE_OPTS \ + $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \ $@" echo "Configure options:" echo $config_opts diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker new file mode 100644 index 0000000000..592b5d7055 --- /dev/null +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker @@ -0,0 +1,15 @@ +# +# Docker arm64 cross-compiler target +# +# This docker target builds on the base debian image. +# +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 + +# Specify the cross prefix for this image (see tests/docker/common.rc) +ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu- diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker new file mode 100644 index 0000000000..668d60aeb3 --- /dev/null +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker @@ -0,0 +1,15 @@ +# +# Docker armhf cross-compiler target +# +# This docker target builds on the base debian image. +# +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 + +# Specify the cross prefix for this image (see tests/docker/common.rc) +ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf- diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker new file mode 100644 index 0000000000..52bd79938e --- /dev/null +++ b/tests/docker/dockerfiles/debian.docker @@ -0,0 +1,25 @@ +# +# 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 + +# Setup some basic tools we need +RUN apt update +RUN apt install -yy curl aptitude + +# 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 From patchwork Mon Feb 20 10:51:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 94194 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1278150obz; Mon, 20 Feb 2017 02:53:33 -0800 (PST) X-Received: by 10.237.60.28 with SMTP id t28mr7362275qte.218.1487588013526; Mon, 20 Feb 2017 02:53:33 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id p129si12683394qkb.59.2017.02.20.02.53.33 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 Feb 2017 02:53:33 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37403 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflb3-0007pw-31 for patch@linaro.org; Mon, 20 Feb 2017 05:53:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53402) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflZE-0006iF-AX for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cflZD-0006Mj-IQ for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:40 -0500 Received: from mail-wr0-x232.google.com ([2a00:1450:400c:c0c::232]:33126) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cflZD-0006MB-C3 for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:39 -0500 Received: by mail-wr0-x232.google.com with SMTP id 35so21321389wrw.0 for ; Mon, 20 Feb 2017 02:51:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=posLnifYdbUYOiIpqWdFUmBTpFYMDxFlz7Y/x86qHys=; b=MAhSFeWvikyHZ1QvKncc773ykRCfpg8xyXn7JlDiD9lYjUzv7MrUY2T0M2YAx92OCD mgFqQ5CqiWiHlFIS+MmhChjDYdooTIlDjr9tMn08EqgWwk7YZZyXOB1LKEVQfOVA0xJS ZeQssB9CpETC9TswWToBR10Z1YKrazgsoxhuI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=posLnifYdbUYOiIpqWdFUmBTpFYMDxFlz7Y/x86qHys=; b=S+FphoDy46Aw2afyVp4t8Ool4KuGCnkdHMXOL40D00cdiKICfQbQ+BS96JTY8Zsrkb x1TpG0R6F4DKojzCs4dnfuNkPQPiULPC55Y+izReFLHr++nwtUp0ZIXaOmVgsoMOoEcA EKsmYTWzJMfvsw6KvRfuqoYgX2oUh/Zo6278tH0fwqJU7J7ZCprJCH3LphB5j+xyPnOH nWgOzHZsDjxpd1MOGqotRuFeiC/sLF4vTnUZInRDqZPM6EjYKAMsoDwU5lO7izesqLwn uehk+C7JGmR58ckkQuXXYoBKs7Q0HLMe5CrnhjzdNZnS+23T5mH8bYYU7RDwj/I0T0WX iALw== X-Gm-Message-State: AMke39lXYU+cLx+L0uz9yC403lAlY8/8m64QDh1r3ytiMZtbct+GxMuNbZOc2TbFsbeeyaCy X-Received: by 10.223.161.25 with SMTP id o25mr7976869wro.136.1487587898192; Mon, 20 Feb 2017 02:51:38 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id u189sm12949541wmu.1.2017.02.20.02.51.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Feb 2017 02:51:34 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 1E1C63E01F8; Mon, 20 Feb 2017 10:51:40 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: famz@redhat.com Date: Mon, 20 Feb 2017 10:51:38 +0000 Message-Id: <20170220105139.21581-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170220105139.21581-1-alex.bennee@linaro.org> References: <20170220105139.21581-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c0c::232 Subject: [Qemu-devel] [PATCH v5 3/4] .shippable.yml: new CI provider X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Ostensibly Shippable offers a similar set of services as Travis. However they are focused on Docker container based work-flows so we can use our existing containers to run a few extra builds - in this case a bunch of cross-compiled targets on a Debian multiarch system. Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng --- v3 - reduce matrix to armhf/arm64 which currently work - use the make docker-image-* build stanzas - add TARGET_LIST to each build v5 - add .shippable to MAINTAINER - drop centos6 build, shippable guests still need to be apt based --- .shippable.yml | 19 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 20 insertions(+) create mode 100644 .shippable.yml -- 2.11.0 diff --git a/.shippable.yml b/.shippable.yml new file mode 100644 index 0000000000..1a1fd7a91d --- /dev/null +++ b/.shippable.yml @@ -0,0 +1,19 @@ +language: c +env: + matrix: + - IMAGE=debian-armhf-cross + TARGET_LIST=arm-softmmu,arm-linux-user + - IMAGE=debian-arm64-cross + TARGET_LIST=aarch64-softmmu,aarch64-linux-user +build: + pre_ci: + - make docker-image-${IMAGE} + pre_ci_boot: + image_name: qemu + image_tag: ${IMAGE} + pull: false + options: "-e HOME=/root" + ci: + - unset CC + - ./configure ${QEMU_CONFIGURE_OPTS} --target-list=${TARGET_LIST} + - make -j2 diff --git a/MAINTAINERS b/MAINTAINERS index fb57d8eb45..6dcbebf072 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1804,6 +1804,7 @@ M: Alex Bennée L: qemu-devel@nongnu.org S: Supported F: .travis.yml +F: .shippable.yml Documentation ------------- From patchwork Mon Feb 20 10:51:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 94193 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1278124obz; Mon, 20 Feb 2017 02:53:30 -0800 (PST) X-Received: by 10.55.127.2 with SMTP id a2mr19496002qkd.319.1487588009974; Mon, 20 Feb 2017 02:53:29 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id b18si3657922qka.287.2017.02.20.02.53.29 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 Feb 2017 02:53:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37402 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflaz-0007my-Gd for patch@linaro.org; Mon, 20 Feb 2017 05:53:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53384) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflZD-0006iE-Hl for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cflZC-0006Lp-9E for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:39 -0500 Received: from mail-wr0-x236.google.com ([2a00:1450:400c:c0c::236]:33120) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cflZC-0006LI-3n for qemu-devel@nongnu.org; Mon, 20 Feb 2017 05:51:38 -0500 Received: by mail-wr0-x236.google.com with SMTP id 35so21321085wrw.0 for ; Mon, 20 Feb 2017 02:51:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2yP2Z3e8octTwOUcRuugFR3JXurqHzgSKwPEZpzh6KQ=; b=AzThgIjvl6WpaTCkdR+qi0zef90ubRJu447U20ARyw8GJQGlsE7a3DBs3s4W9LBujZ /WznzDTf1tG+Q1/bPa1kza/PMHi/F8PGqrbXEuBpey65rP7EkMpQRvvlJhp2hTm+PFd/ wHuCswZln9h5QSgi1PdatE7zdJ3q/87YYF4Ys= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2yP2Z3e8octTwOUcRuugFR3JXurqHzgSKwPEZpzh6KQ=; b=thSinYmkFoi56cTxGMDILCltc6+PBiLDCafNPvAfOIFRimUo8HfZo0p8B4LkeuMwoL tHjwvgrGfc/XbYBy5XtMkVXh4PHRzvqAfM1RdKTJ2FswaIGi5s+mO+hu4EdV3pcpicQk FjZNt+ZAX0vjUJoqBnz6JN7D2ok+hUSwzC0bjYxAiuxFTrptAuA9p59WvMI7JAzl88OG obqO+ayMm9v/4JrGn8fUhKO2T/09gt2ilVEZ8PdVBjrZ83vkuyPgcz2iE9Pr1oszVWyO sYFIvWC6clhZlwHGfdPj/Wl+0BcyEyCjGWcSKuZrRm7SNtfhSJ2eNjNGXOZ0btOJMnsf ctEA== X-Gm-Message-State: AMke39nEYfSoVErwFAksixPDO6JtA8Pyum0V1mvSgP5ffXK/KBINYvP5DTjU9aZmrEx7+QvE X-Received: by 10.223.181.129 with SMTP id c1mr60214wre.147.1487587896969; Mon, 20 Feb 2017 02:51:36 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id j80sm12998366wmd.14.2017.02.20.02.51.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Feb 2017 02:51:34 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 2EAB33E0297; Mon, 20 Feb 2017 10:51:40 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: famz@redhat.com Date: Mon, 20 Feb 2017 10:51:39 +0000 Message-Id: <20170220105139.21581-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170220105139.21581-1-alex.bennee@linaro.org> References: <20170220105139.21581-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c0c::236 Subject: [Qemu-devel] [PATCH v5 4/4] MAINTAINERS: merge Build and test automation with Docker tests X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The docker framework is really just another piece in the build automation puzzle so lets merge it together. For added bonus I've also included the Travis and Patchew status links. The Shippable links will be added later once mainline tests have been configured and setup. Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng --- v4 - fix merge fail (.shippable.yml) --- MAINTAINERS | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) -- 2.11.0 diff --git a/MAINTAINERS b/MAINTAINERS index 6dcbebf072..d3782691dc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1801,10 +1801,14 @@ F: docs/block-replication.txt Build and test automation ------------------------- M: Alex Bennée +M: Fam Zheng L: qemu-devel@nongnu.org -S: Supported +S: Maintained F: .travis.yml F: .shippable.yml +F: tests/docker/ +W: https://travis-ci.org/qemu/qemu +W: http://patchew.org/QEMU/ Documentation ------------- @@ -1813,9 +1817,3 @@ M: Daniel P. Berrange S: Odd Fixes F: docs/build-system.txt -Docker testing --------------- -Docker based testing framework and cases -M: Fam Zheng -S: Maintained -F: tests/docker/