Message ID | 20180525141915.6497-4-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | fix buildings of tests/tcg | expand |
On Fri, 05/25 15:19, 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> > --- > 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 36779645d7..d59314ee65 100644 > --- a/tests/docker/Makefile.include > +++ b/tests/docker/Makefile.include > @@ -46,8 +46,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 > @@ -57,7 +55,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 > @@ -69,6 +66,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 > > # Expand all the pre-requistes for each docker image and test combination > 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 - > -- > 2.17.0 > Nice clean up! Reviewed-by: Fam Zheng <famz@redhat.com>
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 36779645d7..d59314ee65 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -46,8 +46,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 @@ -57,7 +55,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 @@ -69,6 +66,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 # Expand all the pre-requistes for each docker image and test combination 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 -
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.0