From patchwork Thu Jun 28 16:46:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 936277 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="JiBa8aPi"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41Gm960X15z9s1B for ; Fri, 29 Jun 2018 02:54:50 +1000 (AEST) Received: from localhost ([::1]:37625 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYaBz-0003j8-Oj for incoming@patchwork.ozlabs.org; Thu, 28 Jun 2018 12:54:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYa53-0007WT-T0 for qemu-devel@nongnu.org; Thu, 28 Jun 2018 12:47:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fYa50-0004vB-N3 for qemu-devel@nongnu.org; Thu, 28 Jun 2018 12:47:37 -0400 Received: from mail-qk0-x234.google.com ([2607:f8b0:400d:c09::234]:40426) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fYa50-0004uG-Hs for qemu-devel@nongnu.org; Thu, 28 Jun 2018 12:47:34 -0400 Received: by mail-qk0-x234.google.com with SMTP id b129-v6so3345095qke.7 for ; Thu, 28 Jun 2018 09:47:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GMSgOXfecZhTJMxSHLdUSUKtpVGDCSq9K0QIVmSdZoA=; b=JiBa8aPiDa2rbMcLN48Uu3KpJYCzFpMs6M/hIkYFvXKHx27AWbuaI4q14mBx5tkCWg J0LS6dKhKuxRTSyChA8m3dLvqOHwTflXyrOXAaE+OXDAWsMfNfynCoyLZ69LfuxDqlaa Xn833ecXO1AeBTex6DfAIURTE46sxO12xYrAvyjxUeRAvxu/Gk2ZZoR9JublQAZGcAvb L4jB5IeTv1EcOkgpde/VN4rhSQVfHjrIJYn2cCGxQtSX4NsjD+uERIX4x+aJQCztrvvA rVZFta+GIePA+HXz1YDTF2CzeUAjkCE2afRObFueFKaa0Q6XGudnVKaunLpqryz5MZS5 NgQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=GMSgOXfecZhTJMxSHLdUSUKtpVGDCSq9K0QIVmSdZoA=; b=Bmwzn+QIkgKT81qWofMiZIEjT27YFkgS6uCeMns3CiNWvP5kDpEomjCqQy9sCM/HdH 2IInaBb4aci1X5NIgN2LVpd/MFZquYtvO9BGnCSmYrjcF007eNRQ+euvq3AGUaqXBtTx 0pA1w/ZK5zqMZ4kQ4czCZzZQMB+fk9tYqCW5lYZ0vLDbd6gAtWn4+LcJWDPKF2hY+Dw8 qN/Jn8Hn20dVrzmCpk39LgG2kCj/9G1mvfAun/SMoPM+LPYIhn7amSzAPloNYLU7xva3 4mgDw2ETonFKUph5xqA7Zi5AbvzKYphbaFWOaCZ2P1CCTyltd/z8iFSbSS1gl2dx62UN XRhQ== X-Gm-Message-State: APt69E1lTtgYn3rvDW8jmNPv9dw1ijPYqkT/Lj5nEtP18Xd4R1VwGtj5 VTnbdTbT1hJh+oyikieBzsM= X-Google-Smtp-Source: AAOMgpfzv85jv2OrhYp0CucSYO8DiwG8SJotf7wtp6g975lvIjbkOwZe/07LBPbOd14pf0PHQkzK1w== X-Received: by 2002:a37:7207:: with SMTP id n7-v6mr9249097qkc.175.1530204453937; Thu, 28 Jun 2018 09:47:33 -0700 (PDT) Received: from x1.local ([138.117.48.222]) by smtp.gmail.com with ESMTPSA id 32-v6sm4548361qtf.13.2018.06.28.09.47.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Jun 2018 09:47:33 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: =?utf-8?q?Alex_Benn=C3=A9e?= , Fam Zheng , Thomas Huth Date: Thu, 28 Jun 2018 13:46:42 -0300 Message-Id: <20180628164643.9668-8-f4bug@amsat.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180628164643.9668-1-f4bug@amsat.org> References: <20180628164643.9668-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::234 Subject: [Qemu-devel] [PATCH 7/8] docker: Cross build QEMU on ppc32 hosts 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?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Since 08f56d8c9c the powerpc-cross image is no more based on Emdebian but on the Sid release. This patch restore the ability to cross build QEMU on powerpc, which is interesting since it is a 32-bit host. The ugly apt-fake script is, however, still required. Signed-off-by: Philippe Mathieu-Daudé --- tests/docker/Makefile.include | 2 + tests/docker/dockerfiles/debian-apt-fake.sh | 46 +++++++++++++++++++ .../dockerfiles/debian-powerpc-cross.docker | 43 +++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 301ee68ae6..d73d60cfbb 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -58,6 +58,8 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker "BUILD","$*") endif +docker-image-debian-powerpc-cross: EXTRA_FILES:=$(SRC_PATH)/tests/docker/dockerfiles/debian-apt-fake.sh + # Enforce dependencies for composite images docker-image-debian: docker-image-debian9 docker-image-debian8-mxe: docker-image-debian8 diff --git a/tests/docker/dockerfiles/debian-apt-fake.sh b/tests/docker/dockerfiles/debian-apt-fake.sh new file mode 100755 index 0000000000..2ec0fdf47a --- /dev/null +++ b/tests/docker/dockerfiles/debian-apt-fake.sh @@ -0,0 +1,46 @@ +#! /bin/sh +# +# Generate fake debian package to resolve unimportant unmet dependencies held +# by upstream multiarch broken packages. +# +# Copyright (c) 2017 Philippe Mathieu-Daudé +# +# This work is licensed under the terms of the GNU GPL, version 2 +# or (at your option) any later version. See the COPYING file in +# the top-level directory. + +test $1 = "install" && shift 1 + +fake_install() +{ + echo "Generating fake $2 $1 $3 ..." + (cd /var/cache/apt/archives + (cat << 'EOF' +Section: misc +Priority: optional +Standards-Version: 3.9.2 + +Package: NAME +Version: VERSION +Maintainer: qemu-devel@nongnu.org +Architecture: any +Multi-Arch: same +Description: fake NAME +EOF + ) | sed s/NAME/$2/g | sed s/VERSION/$3/g > $2.control + equivs-build -a $1 $2.control 1>/dev/null 2>/dev/null + dpkg -i --force-overwrite $2_$3_$1.deb + ) +} + +try_install() +{ + name=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\1/") + arch=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\2/") + vers=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\3/") + apt-get install -q -yy $1 || fake_install $arch $name $vers +} + +for package in $*; do + try_install $package +done diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker index 5e62ca0df1..4ccd17d9d5 100644 --- a/tests/docker/dockerfiles/debian-powerpc-cross.docker +++ b/tests/docker/dockerfiles/debian-powerpc-cross.docker @@ -11,3 +11,46 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \ apt-get install -y --no-install-recommends \ gcc-powerpc-linux-gnu \ libc6-dev-powerpc-cross || { echo "Failed to build - see debian-sid.docker notes"; exit 1; } + +# Setup some basic tools we need +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + bison \ + binutils-multiarch \ + build-essential \ + ca-certificates \ + curl \ + flex \ + gettext \ + git \ + gnupg \ + pkg-config \ + python-minimal + +RUN dpkg --add-architecture powerpc && \ + apt-get update + +ENV PKG_CONFIG_PATH /usr/lib/powerpc-linux-gnu/pkgconfig + +# Specify the cross prefix for this image (see tests/docker/common.rc) +ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc-linux-gnu- + +# 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 +RUN apt-fake install \ + glusterfs-common:powerpc=4.0.2-fake +# + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get build-dep -yy -a powerpc qemu +RUN DEBIAN_FRONTEND=noninteractive \ + apt-get install -y --no-install-recommends \ + glusterfs-common:powerpc \ + libbz2-dev:powerpc \ + liblzo2-dev:powerpc \ + libncursesw5-dev:powerpc \ + libnfs-dev:powerpc \ + librdmacm-dev:powerpc \ + libsnappy-dev:powerpc