diff mbox series

tests/docker: Use --arch-only when building Debian cross images

Message ID 20210223170910.2916721-1-f4bug@amsat.org
State New
Headers show
Series tests/docker: Use --arch-only when building Debian cross images | expand

Commit Message

Philippe Mathieu-Daudé Feb. 23, 2021, 5:09 p.m. UTC
When building a Docker image based on debian10.docker on
a non-x86 host, we get:

 [2/4] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu
 Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 Some packages could not be installed. This may mean that you have
 requested an impossible situation or if you are using the unstable
 distribution that some required packages have not yet been created
 or been moved out of Incoming.
 The following information may help to resolve the situation:

 The following packages have unmet dependencies:
  builddeps:qemu : Depends: gcc-s390x-linux-gnu but it is not installable
                   Depends: gcc-alpha-linux-gnu but it is not installable
 E: Unable to correct problems, you have held broken packages.

Fix by using the --arch-only option suggested here:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1866032/comments/1

Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/docker/dockerfiles/debian-all-test-cross.docker | 2 +-
 tests/docker/dockerfiles/debian10.docker              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Alex Bennée Feb. 23, 2021, 6:28 p.m. UTC | #1
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> When building a Docker image based on debian10.docker on
> a non-x86 host, we get:
>
>  [2/4] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu
>  Reading package lists... Done
>  Building dependency tree
>  Reading state information... Done
>  Some packages could not be installed. This may mean that you have
>  requested an impossible situation or if you are using the unstable
>  distribution that some required packages have not yet been created
>  or been moved out of Incoming.
>  The following information may help to resolve the situation:
>
>  The following packages have unmet dependencies:
>   builddeps:qemu : Depends: gcc-s390x-linux-gnu but it is not installable
>                    Depends: gcc-alpha-linux-gnu but it is not installable
>  E: Unable to correct problems, you have held broken packages.
>
> Fix by using the --arch-only option suggested here:
> https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1866032/comments/1
>
> Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  tests/docker/dockerfiles/debian-all-test-cross.docker | 2 +-
>  tests/docker/dockerfiles/debian10.docker              | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
> index dedcea58b46..593b7ef1023 100644
> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker
> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
> @@ -11,7 +11,7 @@ FROM qemu/debian10
>  # What we need to build QEMU itself
>  RUN apt update && \
>      DEBIAN_FRONTEND=noninteractive eatmydata \
> -    apt build-dep -yy qemu
> +    apt build-dep --arch-only -yy qemu

This is just going to fail later on when you discover the cross
compilers are only packaged for amd64. Perhaps we need to mark this one
as amd64 only somehow?

>  
>  # Add the foreign architecture we want and install dependencies
>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \
> diff --git a/tests/docker/dockerfiles/debian10.docker b/tests/docker/dockerfiles/debian10.docker
> index 9d42b5a4b81..d034acbd256 100644
> --- a/tests/docker/dockerfiles/debian10.docker
> +++ b/tests/docker/dockerfiles/debian10.docker
> @@ -32,6 +32,6 @@ RUN apt update && \
>          psmisc \
>          python3 \
>          python3-sphinx \
> -        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
> +        $(apt-get -s build-dep --arch-only qemu | egrep ^Inst | fgrep
>  '[all]' | cut -d\  -f2)

This bit is fine, without the all-test-cross change:

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Philippe Mathieu-Daudé Feb. 23, 2021, 6:58 p.m. UTC | #2
On 2/23/21 7:28 PM, Alex Bennée wrote:
> Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
> 
>> When building a Docker image based on debian10.docker on
>> a non-x86 host, we get:
>>
>>  [2/4] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu
>>  Reading package lists... Done
>>  Building dependency tree
>>  Reading state information... Done
>>  Some packages could not be installed. This may mean that you have
>>  requested an impossible situation or if you are using the unstable
>>  distribution that some required packages have not yet been created
>>  or been moved out of Incoming.
>>  The following information may help to resolve the situation:
>>
>>  The following packages have unmet dependencies:
>>   builddeps:qemu : Depends: gcc-s390x-linux-gnu but it is not installable
>>                    Depends: gcc-alpha-linux-gnu but it is not installable
>>  E: Unable to correct problems, you have held broken packages.
>>
>> Fix by using the --arch-only option suggested here:
>> https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1866032/comments/1
>>
>> Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>  tests/docker/dockerfiles/debian-all-test-cross.docker | 2 +-
>>  tests/docker/dockerfiles/debian10.docker              | 2 +-
>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
>> index dedcea58b46..593b7ef1023 100644
>> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker
>> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
>> @@ -11,7 +11,7 @@ FROM qemu/debian10
>>  # What we need to build QEMU itself
>>  RUN apt update && \
>>      DEBIAN_FRONTEND=noninteractive eatmydata \
>> -    apt build-dep -yy qemu
>> +    apt build-dep --arch-only -yy qemu
> 
> This is just going to fail later on when you discover the cross
> compilers are only packaged for amd64.

Yes, I wonder if this is a Debian bug (we can still install cross
gcc for the host target -- which is pointless) and the cross libc.

> Perhaps we need to mark this one as amd64 only somehow?

OK.

>>  
>>  # Add the foreign architecture we want and install dependencies
>>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \
>> diff --git a/tests/docker/dockerfiles/debian10.docker b/tests/docker/dockerfiles/debian10.docker
>> index 9d42b5a4b81..d034acbd256 100644
>> --- a/tests/docker/dockerfiles/debian10.docker
>> +++ b/tests/docker/dockerfiles/debian10.docker
>> @@ -32,6 +32,6 @@ RUN apt update && \
>>          psmisc \
>>          python3 \
>>          python3-sphinx \
>> -        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
>> +        $(apt-get -s build-dep --arch-only qemu | egrep ^Inst | fgrep
>>  '[all]' | cut -d\  -f2)
> 
> This bit is fine, without the all-test-cross change:
> 
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>
diff mbox series

Patch

diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index dedcea58b46..593b7ef1023 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -11,7 +11,7 @@  FROM qemu/debian10
 # What we need to build QEMU itself
 RUN apt update && \
     DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt build-dep -yy qemu
+    apt build-dep --arch-only -yy qemu
 
 # Add the foreign architecture we want and install dependencies
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
diff --git a/tests/docker/dockerfiles/debian10.docker b/tests/docker/dockerfiles/debian10.docker
index 9d42b5a4b81..d034acbd256 100644
--- a/tests/docker/dockerfiles/debian10.docker
+++ b/tests/docker/dockerfiles/debian10.docker
@@ -32,6 +32,6 @@  RUN apt update && \
         psmisc \
         python3 \
         python3-sphinx \
-        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
+        $(apt-get -s build-dep --arch-only qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
 
 ENV FEATURES docs