diff mbox series

[v6,39/49] docker: move debian-powerpc-cross to sid based build

Message ID 20180608123307.24773-40-alex.bennee@linaro.org
State Superseded
Headers show
Series fix building of tests/tcg | expand

Commit Message

Alex Bennée June 8, 2018, 12:32 p.m. UTC
The original Jessie based cross builder hasn't worked for a while. The
state of the libraries is still perilous for cross-building QEMU but
we can use it for building TCG tests.

The debian-apt-fake.sh script can also be dropped as it is no longer
used.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 tests/docker/Makefile.include                 |  4 +-
 tests/docker/dockerfiles/debian-apt-fake.sh   | 46 -------------------
 .../dockerfiles/debian-powerpc-cross.docker   | 39 +++-------------
 tests/docker/dockerfiles/debian8.docker       |  3 --
 4 files changed, 7 insertions(+), 85 deletions(-)
 delete mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh

-- 
2.17.1

Comments

Philippe Mathieu-Daudé June 11, 2018, 1:30 a.m. UTC | #1
On 06/08/2018 09:32 AM, Alex Bennée wrote:
> The original Jessie based cross builder hasn't worked for a while. The

> state of the libraries is still perilous for cross-building QEMU but

> we can use it for building TCG tests.

> 

> The debian-apt-fake.sh script can also be dropped as it is no longer

> used.

> 

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> ---

>  tests/docker/Makefile.include                 |  4 +-

>  tests/docker/dockerfiles/debian-apt-fake.sh   | 46 -------------------

>  .../dockerfiles/debian-powerpc-cross.docker   | 39 +++-------------

>  tests/docker/dockerfiles/debian8.docker       |  3 --

>  4 files changed, 7 insertions(+), 85 deletions(-)

>  delete mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh

> 

> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include

> index 10f98916f9..78568d7c61 100644

> --- a/tests/docker/Makefile.include

> +++ b/tests/docker/Makefile.include

> @@ -47,8 +47,6 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker

>  		$(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\

>  		"BUILD","$*")

>  

> -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

> @@ -58,7 +56,6 @@ docker-image-debian-armhf-cross: docker-image-debian9

>  docker-image-debian-arm64-cross: docker-image-debian9

>  docker-image-debian-mips-cross: docker-image-debian9

>  docker-image-debian-mips64el-cross: docker-image-debian9

> -docker-image-debian-powerpc-cross: docker-image-debian8

>  docker-image-debian-ppc64el-cross: docker-image-debian9

>  docker-image-debian-s390x-cross: docker-image-debian9

>  docker-image-debian-win32-cross: docker-image-debian8-mxe

> @@ -76,6 +73,7 @@ docker-image-debian-sh4-cross: docker-image-debian-sid

>  docker-image-debian-sparc64-cross: docker-image-debian-sid

>  docker-image-debian-mips64-cross: docker-image-debian-sid

>  docker-image-debian-riscv64-cross: docker-image-debian-sid

> +docker-image-debian-powerpc-cross: docker-image-debian-sid

>  docker-image-travis: NOUSER=1

>  

>  # Specialist build images, sometimes very limited tools

> diff --git a/tests/docker/dockerfiles/debian-apt-fake.sh b/tests/docker/dockerfiles/debian-apt-fake.sh

> deleted file mode 100755

> index 2ec0fdf47a..0000000000

> --- a/tests/docker/dockerfiles/debian-apt-fake.sh

> +++ /dev/null

> @@ -1,46 +0,0 @@

> -#! /bin/sh

> -#

> -# Generate fake debian package to resolve unimportant unmet dependencies held

> -# by upstream multiarch broken packages.

> -#

> -# Copyright (c) 2017 Philippe Mathieu-Daudé <f4bug@amsat.org>

> -#

> -# This work is licensed under the terms of the GNU GPL, version 2

> -# or (at your option) any later version. See the COPYING file in

> -# the top-level directory.

> -

> -test $1 = "install" && shift 1

> -

> -fake_install()

> -{

> -    echo "Generating fake $2 $1 $3 ..."

> -    (cd /var/cache/apt/archives

> -        (cat << 'EOF'

> -Section: misc

> -Priority: optional

> -Standards-Version: 3.9.2

> -

> -Package: NAME

> -Version: VERSION

> -Maintainer: qemu-devel@nongnu.org

> -Architecture: any

> -Multi-Arch: same

> -Description: fake NAME

> -EOF

> -        ) | sed s/NAME/$2/g | sed s/VERSION/$3/g > $2.control

> -        equivs-build -a $1 $2.control 1>/dev/null 2>/dev/null

> -        dpkg -i --force-overwrite $2_$3_$1.deb

> -    )

> -}

> -

> -try_install()

> -{

> -    name=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\1/")

> -    arch=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\2/")

> -    vers=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\3/")

> -    apt-get install -q -yy $1 || fake_install $arch $name $vers

> -}

> -

> -for package in $*; do

> -    try_install $package

> -done

> diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker

> index a5dd46b4ac..5e62ca0df1 100644

> --- a/tests/docker/dockerfiles/debian-powerpc-cross.docker

> +++ b/tests/docker/dockerfiles/debian-powerpc-cross.docker

> @@ -1,40 +1,13 @@

>  #

>  # Docker powerpc cross-compiler target

>  #

> -# This docker target builds on the debian Jessie base image.

> +# This docker target builds on the debian sid base image which

> +# contains cross compilers for Debian "ports" targets. The original

> +# Jessie based no longer builds.

>  #

> -FROM qemu:debian8

> -MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>

> +FROM qemu:debian-sid

>  

> -# Add the foreign architecture we want and install dependencies

> -RUN dpkg --add-architecture powerpc

> -RUN apt-get update

>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \

>      apt-get install -y --no-install-recommends \

> -        crossbuild-essential-powerpc

> -

> -# <kludge> to fix "following packages have unmet dependencies" ...

> -ADD debian-apt-fake.sh /usr/local/bin/apt-fake

> -RUN apt-get install -y --no-install-recommends \

> -        equivs \

> -        pkg-config

> -RUN apt-fake install \

> -        pkg-config:powerpc=0.28-1.1-fake && \

> -    ln -s pkg-config /usr/bin/powerpc-linux-gnu-pkg-config

> -ENV PKG_CONFIG_PATH /usr/lib/powerpc-linux-gnu/pkgconfig

> -# </kludge>

> -

> -# Specify the cross prefix for this image (see tests/docker/common.rc)

> -ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc-linux-gnu-

> -

> -RUN DEBIAN_FRONTEND=noninteractive eatmydata \

> -    apt-get build-dep -yy -a powerpc qemu

> -RUN DEBIAN_FRONTEND=noninteractive \

> -    apt-get install -y --no-install-recommends \

> -        glusterfs-common:powerpc \

> -        libbz2-dev:powerpc \

> -        liblzo2-dev:powerpc \

> -        libncursesw5-dev:powerpc \

> -        libnfs-dev:powerpc \

> -        librdmacm-dev:powerpc \

> -        libsnappy-dev:powerpc

> +        gcc-powerpc-linux-gnu \

> +        libc6-dev-powerpc-cross || { echo "Failed to build - see debian-sid.docker notes"; exit 1; }

> diff --git a/tests/docker/dockerfiles/debian8.docker b/tests/docker/dockerfiles/debian8.docker

> index 1bcf2e3d2f..52945631cd 100644

> --- a/tests/docker/dockerfiles/debian8.docker

> +++ b/tests/docker/dockerfiles/debian8.docker

> @@ -32,6 +32,3 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \

>          pkg-config \

>          python-minimal

>  

> -# Setup Emdebian [emdebian-archive-keyring]

> -RUN echo "deb http://emdebian.org/tools/debian/ jessie main" > /etc/apt/sources.list.d/emdebian.list && \

> -    curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -

>
diff mbox series

Patch

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 10f98916f9..78568d7c61 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -47,8 +47,6 @@  docker-image-%: $(DOCKER_FILES_DIR)/%.docker
 		$(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
 		"BUILD","$*")
 
-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
@@ -58,7 +56,6 @@  docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
 docker-image-debian-mips-cross: docker-image-debian9
 docker-image-debian-mips64el-cross: docker-image-debian9
-docker-image-debian-powerpc-cross: docker-image-debian8
 docker-image-debian-ppc64el-cross: docker-image-debian9
 docker-image-debian-s390x-cross: docker-image-debian9
 docker-image-debian-win32-cross: docker-image-debian8-mxe
@@ -76,6 +73,7 @@  docker-image-debian-sh4-cross: docker-image-debian-sid
 docker-image-debian-sparc64-cross: docker-image-debian-sid
 docker-image-debian-mips64-cross: docker-image-debian-sid
 docker-image-debian-riscv64-cross: docker-image-debian-sid
+docker-image-debian-powerpc-cross: docker-image-debian-sid
 docker-image-travis: NOUSER=1
 
 # Specialist build images, sometimes very limited tools
diff --git a/tests/docker/dockerfiles/debian-apt-fake.sh b/tests/docker/dockerfiles/debian-apt-fake.sh
deleted file mode 100755
index 2ec0fdf47a..0000000000
--- a/tests/docker/dockerfiles/debian-apt-fake.sh
+++ /dev/null
@@ -1,46 +0,0 @@ 
-#! /bin/sh
-#
-# Generate fake debian package to resolve unimportant unmet dependencies held
-# by upstream multiarch broken packages.
-#
-# Copyright (c) 2017 Philippe Mathieu-Daudé <f4bug@amsat.org>
-#
-# This work is licensed under the terms of the GNU GPL, version 2
-# or (at your option) any later version. See the COPYING file in
-# the top-level directory.
-
-test $1 = "install" && shift 1
-
-fake_install()
-{
-    echo "Generating fake $2 $1 $3 ..."
-    (cd /var/cache/apt/archives
-        (cat << 'EOF'
-Section: misc
-Priority: optional
-Standards-Version: 3.9.2
-
-Package: NAME
-Version: VERSION
-Maintainer: qemu-devel@nongnu.org
-Architecture: any
-Multi-Arch: same
-Description: fake NAME
-EOF
-        ) | sed s/NAME/$2/g | sed s/VERSION/$3/g > $2.control
-        equivs-build -a $1 $2.control 1>/dev/null 2>/dev/null
-        dpkg -i --force-overwrite $2_$3_$1.deb
-    )
-}
-
-try_install()
-{
-    name=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\1/")
-    arch=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\2/")
-    vers=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\3/")
-    apt-get install -q -yy $1 || fake_install $arch $name $vers
-}
-
-for package in $*; do
-    try_install $package
-done
diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker
index a5dd46b4ac..5e62ca0df1 100644
--- a/tests/docker/dockerfiles/debian-powerpc-cross.docker
+++ b/tests/docker/dockerfiles/debian-powerpc-cross.docker
@@ -1,40 +1,13 @@ 
 #
 # Docker powerpc cross-compiler target
 #
-# This docker target builds on the debian Jessie base image.
+# This docker target builds on the debian sid base image which
+# contains cross compilers for Debian "ports" targets. The original
+# Jessie based no longer builds.
 #
-FROM qemu:debian8
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
+FROM qemu:debian-sid
 
-# Add the foreign architecture we want and install dependencies
-RUN dpkg --add-architecture powerpc
-RUN apt-get update
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
     apt-get install -y --no-install-recommends \
-        crossbuild-essential-powerpc
-
-# <kludge> to fix "following packages have unmet dependencies" ...
-ADD debian-apt-fake.sh /usr/local/bin/apt-fake
-RUN apt-get install -y --no-install-recommends \
-        equivs \
-        pkg-config
-RUN apt-fake install \
-        pkg-config:powerpc=0.28-1.1-fake && \
-    ln -s pkg-config /usr/bin/powerpc-linux-gnu-pkg-config
-ENV PKG_CONFIG_PATH /usr/lib/powerpc-linux-gnu/pkgconfig
-# </kludge>
-
-# Specify the cross prefix for this image (see tests/docker/common.rc)
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc-linux-gnu-
-
-RUN DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get build-dep -yy -a powerpc qemu
-RUN DEBIAN_FRONTEND=noninteractive \
-    apt-get install -y --no-install-recommends \
-        glusterfs-common:powerpc \
-        libbz2-dev:powerpc \
-        liblzo2-dev:powerpc \
-        libncursesw5-dev:powerpc \
-        libnfs-dev:powerpc \
-        librdmacm-dev:powerpc \
-        libsnappy-dev:powerpc
+        gcc-powerpc-linux-gnu \
+        libc6-dev-powerpc-cross || { echo "Failed to build - see debian-sid.docker notes"; exit 1; }
diff --git a/tests/docker/dockerfiles/debian8.docker b/tests/docker/dockerfiles/debian8.docker
index 1bcf2e3d2f..52945631cd 100644
--- a/tests/docker/dockerfiles/debian8.docker
+++ b/tests/docker/dockerfiles/debian8.docker
@@ -32,6 +32,3 @@  RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         pkg-config \
         python-minimal
 
-# Setup Emdebian [emdebian-archive-keyring]
-RUN echo "deb http://emdebian.org/tools/debian/ jessie main" > /etc/apt/sources.list.d/emdebian.list && \
-    curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -