[Qemu-devel] [PATCH v1 22/42] tests/docker: drop powerpc-user image for QEMU cross builds

Alex Bennée posted 42 patches 6 years, 5 months ago
[Qemu-devel] [PATCH v1 22/42] tests/docker: drop powerpc-user image for QEMU cross builds
Posted by Alex Bennée 6 years, 5 months ago
Now Jessie has entered LTS the powerpc architecture has been dropped
so we can no longer build the image from scratch. We will still
support a minimal powerpc-cross image for building testcases.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: David Gibson <david@gibson.dropbear.id.au>
---
 tests/docker/Makefile.include                     |  8 --------
 .../dockerfiles/debian-powerpc-user-cross.docker  | 15 ---------------
 2 files changed, 23 deletions(-)
 delete mode 100644 tests/docker/dockerfiles/debian-powerpc-user-cross.docker

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 59fbebbe2e6..f4e9dfc0120 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -126,14 +126,6 @@ DOCKER_PARTIAL_IMAGES += fedora-cris-cross
 # work around issues with poorly working multi-arch systems and broken
 # packages.
 
-# Jessie is the last supported release for powerpc, but multi-arch is
-# broken so we need a qemu-linux-user for this target
-docker-binfmt-image-debian-powerpc-user: DEB_ARCH = powerpc
-docker-binfmt-image-debian-powerpc-user: DEB_TYPE = jessie
-docker-binfmt-image-debian-powerpc-user: EXECUTABLE = ${BUILD_DIR}/ppc-linux-user/qemu-ppc
-docker-image-debian-powerpc-user-cross: docker-binfmt-image-debian-powerpc-user
-DOCKER_USER_IMAGES += debian-powerpc-user
-
 # Expand all the pre-requistes for each docker image and test combination
 $(foreach i,$(filter-out $(DOCKER_PARTIAL_IMAGES),$(DOCKER_IMAGES) $(DOCKER_DEPRECATED_IMAGES)), \
 	$(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \
diff --git a/tests/docker/dockerfiles/debian-powerpc-user-cross.docker b/tests/docker/dockerfiles/debian-powerpc-user-cross.docker
deleted file mode 100644
index 6938a845ee2..00000000000
--- a/tests/docker/dockerfiles/debian-powerpc-user-cross.docker
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Docker powerpc cross-compiler target for QEMU
-#
-# We can't use current Debian stable cross-compilers to build powerpc
-# as it has been dropped as a release architecture. Using Debian Sid
-# is just far too sketchy a build environment. This leaves us the
-# final option of using linux-user. This image is based of the
-# debootstrapped qemu:debian-powerpc-user but doesn't need any extra
-# magic once it is setup.
-#
-FROM qemu:debian-powerpc-user
-
-RUN echo man-db man-db/auto-update boolean false | debconf-set-selections
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive apt-get build-dep -yy qemu
-- 
2.20.1


Re: [Qemu-devel] [PATCH v1 22/42] tests/docker: drop powerpc-user image for QEMU cross builds
Posted by Philippe Mathieu-Daudé 6 years, 5 months ago
On 9/4/19 10:29 PM, Alex Bennée wrote:
> Now Jessie has entered LTS the powerpc architecture has been dropped
> so we can no longer build the image from scratch. We will still
> support a minimal powerpc-cross image for building testcases.

This one still works using:

DEB_URL=http://snapshot.debian.org/archive/debian/20180615T211437Z

So I'd rather keep it with this snippet:

-- >8 --
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -68,10 +68,13 @@ docker-binfmt-image-debian-%:
$(DOCKER_FILES_DIR)/debian-bootstrap.docker
                $(error DEB_ARCH not set, debootstrap of debian-$* would
fail))
        $(if $(DEB_TYPE),,\
                $(error DEB_TYPE not set, debootstrap of debian-$* would
fail))
+       $(if $(DEB_URL),,\
+               $(error DEB_URL not set, debootstrap of debian-$* would
fail))
        $(if $(wildcard $(EXECUTABLE)),
        \
                $(call quiet-command,
        \
                        DEB_ARCH=$(DEB_ARCH)
        \
                        DEB_TYPE=$(DEB_TYPE)
        \
+                       DEB_URL=$(DEB_URL)
                \
                        $(DOCKER_SCRIPT) build qemu:debian-$* $<
        \
                        $(if $V,,--quiet) $(if $(NOCACHE),--no-cache)
        \
                        $(if $(NOUSER),,--add-current-user)
        \
@@ -130,6 +133,7 @@ DOCKER_PARTIAL_IMAGES += fedora-cris-cross
 # broken so we need a qemu-linux-user for this target
 docker-binfmt-image-debian-powerpc-user: DEB_ARCH = powerpc
 docker-binfmt-image-debian-powerpc-user: DEB_TYPE = jessie
+docker-binfmt-image-debian-powerpc-user: DEB_URL =
http://snapshot.debian.org/archive/debian/20180615T211437Z
 docker-binfmt-image-debian-powerpc-user: EXECUTABLE =
${BUILD_DIR}/ppc-linux-user/qemu-ppc
 docker-image-debian-powerpc-user-cross:
docker-binfmt-image-debian-powerpc-user
 DOCKER_USER_IMAGES += debian-powerpc-user
---

> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: David Gibson <david@gibson.dropbear.id.au>
> ---
>  tests/docker/Makefile.include                     |  8 --------
>  .../dockerfiles/debian-powerpc-user-cross.docker  | 15 ---------------
>  2 files changed, 23 deletions(-)
>  delete mode 100644 tests/docker/dockerfiles/debian-powerpc-user-cross.docker
> 
> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
> index 59fbebbe2e6..f4e9dfc0120 100644
> --- a/tests/docker/Makefile.include
> +++ b/tests/docker/Makefile.include
> @@ -126,14 +126,6 @@ DOCKER_PARTIAL_IMAGES += fedora-cris-cross
>  # work around issues with poorly working multi-arch systems and broken
>  # packages.
>  
> -# Jessie is the last supported release for powerpc, but multi-arch is
> -# broken so we need a qemu-linux-user for this target
> -docker-binfmt-image-debian-powerpc-user: DEB_ARCH = powerpc
> -docker-binfmt-image-debian-powerpc-user: DEB_TYPE = jessie
> -docker-binfmt-image-debian-powerpc-user: EXECUTABLE = ${BUILD_DIR}/ppc-linux-user/qemu-ppc
> -docker-image-debian-powerpc-user-cross: docker-binfmt-image-debian-powerpc-user
> -DOCKER_USER_IMAGES += debian-powerpc-user
> -
>  # Expand all the pre-requistes for each docker image and test combination
>  $(foreach i,$(filter-out $(DOCKER_PARTIAL_IMAGES),$(DOCKER_IMAGES) $(DOCKER_DEPRECATED_IMAGES)), \
>  	$(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \
> diff --git a/tests/docker/dockerfiles/debian-powerpc-user-cross.docker b/tests/docker/dockerfiles/debian-powerpc-user-cross.docker
> deleted file mode 100644
> index 6938a845ee2..00000000000
> --- a/tests/docker/dockerfiles/debian-powerpc-user-cross.docker
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -#
> -# Docker powerpc cross-compiler target for QEMU
> -#
> -# We can't use current Debian stable cross-compilers to build powerpc
> -# as it has been dropped as a release architecture. Using Debian Sid
> -# is just far too sketchy a build environment. This leaves us the
> -# final option of using linux-user. This image is based of the
> -# debootstrapped qemu:debian-powerpc-user but doesn't need any extra
> -# magic once it is setup.
> -#
> -FROM qemu:debian-powerpc-user
> -
> -RUN echo man-db man-db/auto-update boolean false | debconf-set-selections
> -RUN apt-get update && \
> -    DEBIAN_FRONTEND=noninteractive apt-get build-dep -yy qemu
> 

Re: [Qemu-devel] [PATCH v1 22/42] tests/docker: drop powerpc-user image for QEMU cross builds
Posted by Alex Bennée 6 years, 5 months ago
Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> On 9/4/19 10:29 PM, Alex Bennée wrote:
>> Now Jessie has entered LTS the powerpc architecture has been dropped
>> so we can no longer build the image from scratch. We will still
>> support a minimal powerpc-cross image for building testcases.
>
> This one still works using:
>
> DEB_URL=http://snapshot.debian.org/archive/debian/20180615T211437Z
>
> So I'd rather keep it with this snippet:
>
> -- >8 --
> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
> --- a/tests/docker/Makefile.include
> +++ b/tests/docker/Makefile.include
> @@ -68,10 +68,13 @@ docker-binfmt-image-debian-%:
> $(DOCKER_FILES_DIR)/debian-bootstrap.docker
>                 $(error DEB_ARCH not set, debootstrap of debian-$* would
> fail))
>         $(if $(DEB_TYPE),,\
>                 $(error DEB_TYPE not set, debootstrap of debian-$* would
> fail))
> +       $(if $(DEB_URL),,\
> +               $(error DEB_URL not set, debootstrap of debian-$* would
> fail))

I'm not sure we want to force a fail here - DEB_URL will set to a
reasonable default if not set.

>         $(if $(wildcard $(EXECUTABLE)),
>         \
>                 $(call quiet-command,
>         \
>                         DEB_ARCH=$(DEB_ARCH)
>         \
>                         DEB_TYPE=$(DEB_TYPE)
>         \
> +                       DEB_URL=$(DEB_URL)
>                 \
>                         $(DOCKER_SCRIPT) build qemu:debian-$* $<
>         \
>                         $(if $V,,--quiet) $(if $(NOCACHE),--no-cache)
>         \
>                         $(if $(NOUSER),,--add-current-user)
>         \
> @@ -130,6 +133,7 @@ DOCKER_PARTIAL_IMAGES += fedora-cris-cross
>  # broken so we need a qemu-linux-user for this target
>  docker-binfmt-image-debian-powerpc-user: DEB_ARCH = powerpc
>  docker-binfmt-image-debian-powerpc-user: DEB_TYPE = jessie
> +docker-binfmt-image-debian-powerpc-user: DEB_URL =
> http://snapshot.debian.org/archive/debian/20180615T211437Z

These seems reasonable though.

>  docker-binfmt-image-debian-powerpc-user: EXECUTABLE =
> ${BUILD_DIR}/ppc-linux-user/qemu-ppc
>  docker-image-debian-powerpc-user-cross:
> docker-binfmt-image-debian-powerpc-user
>  DOCKER_USER_IMAGES += debian-powerpc-user
> ---
>
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Cc: David Gibson <david@gibson.dropbear.id.au>
>> ---
>>  tests/docker/Makefile.include                     |  8 --------
>>  .../dockerfiles/debian-powerpc-user-cross.docker  | 15 ---------------
>>  2 files changed, 23 deletions(-)
>>  delete mode 100644 tests/docker/dockerfiles/debian-powerpc-user-cross.docker
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index 59fbebbe2e6..f4e9dfc0120 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -126,14 +126,6 @@ DOCKER_PARTIAL_IMAGES += fedora-cris-cross
>>  # work around issues with poorly working multi-arch systems and broken
>>  # packages.
>>
>> -# Jessie is the last supported release for powerpc, but multi-arch is
>> -# broken so we need a qemu-linux-user for this target
>> -docker-binfmt-image-debian-powerpc-user: DEB_ARCH = powerpc
>> -docker-binfmt-image-debian-powerpc-user: DEB_TYPE = jessie
>> -docker-binfmt-image-debian-powerpc-user: EXECUTABLE = ${BUILD_DIR}/ppc-linux-user/qemu-ppc
>> -docker-image-debian-powerpc-user-cross: docker-binfmt-image-debian-powerpc-user
>> -DOCKER_USER_IMAGES += debian-powerpc-user
>> -
>>  # Expand all the pre-requistes for each docker image and test combination
>>  $(foreach i,$(filter-out $(DOCKER_PARTIAL_IMAGES),$(DOCKER_IMAGES) $(DOCKER_DEPRECATED_IMAGES)), \
>>  	$(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \
>> diff --git a/tests/docker/dockerfiles/debian-powerpc-user-cross.docker b/tests/docker/dockerfiles/debian-powerpc-user-cross.docker
>> deleted file mode 100644
>> index 6938a845ee2..00000000000
>> --- a/tests/docker/dockerfiles/debian-powerpc-user-cross.docker
>> +++ /dev/null
>> @@ -1,15 +0,0 @@
>> -#
>> -# Docker powerpc cross-compiler target for QEMU
>> -#
>> -# We can't use current Debian stable cross-compilers to build powerpc
>> -# as it has been dropped as a release architecture. Using Debian Sid
>> -# is just far too sketchy a build environment. This leaves us the
>> -# final option of using linux-user. This image is based of the
>> -# debootstrapped qemu:debian-powerpc-user but doesn't need any extra
>> -# magic once it is setup.
>> -#
>> -FROM qemu:debian-powerpc-user
>> -
>> -RUN echo man-db man-db/auto-update boolean false | debconf-set-selections
>> -RUN apt-get update && \
>> -    DEBIAN_FRONTEND=noninteractive apt-get build-dep -yy qemu
>>


--
Alex Bennée