diff mbox series

[2/7] tests/docker: Simplify debian-all-test-cross

Message ID 20211014224435.2539547-3-richard.henderson@linaro.org
State New
Headers show
Series tests: docker images for hexagon, nios2, microblaze | expand

Commit Message

Richard Henderson Oct. 14, 2021, 10:44 p.m. UTC
The base debian10 image contains enough to build qemu;
we do not need to repeat that within the new image.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 tests/docker/dockerfiles/debian-all-test-cross.docker | 5 -----
 1 file changed, 5 deletions(-)

-- 
2.25.1

Comments

Alex Bennée Oct. 18, 2021, 10:54 a.m. UTC | #1
Richard Henderson <richard.henderson@linaro.org> writes:

> The base debian10 image contains enough to build qemu;

> we do not need to repeat that within the new image.

>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  tests/docker/dockerfiles/debian-all-test-cross.docker | 5 -----

>  1 file changed, 5 deletions(-)

>

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

> index dedcea58b4..b185b7c15a 100644

> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker

> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker

> @@ -8,11 +8,6 @@

>  #

>  FROM qemu/debian10

>  

> -# What we need to build QEMU itself

> -RUN apt update && \

> -    DEBIAN_FRONTEND=noninteractive eatmydata \

> -    apt build-dep -yy qemu

> -

>  # Add the foreign architecture we want and install dependencies

>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \

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


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


-- 
Alex Bennée
Philippe Mathieu-Daudé Oct. 18, 2021, 11:14 a.m. UTC | #2
On 10/18/21 12:54, Alex Bennée wrote:
> 

> Richard Henderson <richard.henderson@linaro.org> writes:

> 

>> The base debian10 image contains enough to build qemu;

>> we do not need to repeat that within the new image.

>>

>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

>> ---

>>  tests/docker/dockerfiles/debian-all-test-cross.docker | 5 -----

>>  1 file changed, 5 deletions(-)

>>

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

>> index dedcea58b4..b185b7c15a 100644

>> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker

>> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker

>> @@ -8,11 +8,6 @@

>>  #

>>  FROM qemu/debian10

>>  

>> -# What we need to build QEMU itself

>> -RUN apt update && \

>> -    DEBIAN_FRONTEND=noninteractive eatmydata \

>> -    apt build-dep -yy qemu

>> -

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

>>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \

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

> 

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


IIUC if we keep --arch-only in the previous step (previous patch),
this step is required here.
Alex Bennée Oct. 18, 2021, 11:33 a.m. UTC | #3
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> On 10/18/21 12:54, Alex Bennée wrote:

>> 

>> Richard Henderson <richard.henderson@linaro.org> writes:

>> 

>>> The base debian10 image contains enough to build qemu;

>>> we do not need to repeat that within the new image.

>>>

>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

>>> ---

>>>  tests/docker/dockerfiles/debian-all-test-cross.docker | 5 -----

>>>  1 file changed, 5 deletions(-)

>>>

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

>>> index dedcea58b4..b185b7c15a 100644

>>> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker

>>> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker

>>> @@ -8,11 +8,6 @@

>>>  #

>>>  FROM qemu/debian10

>>>  

>>> -# What we need to build QEMU itself

>>> -RUN apt update && \

>>> -    DEBIAN_FRONTEND=noninteractive eatmydata \

>>> -    apt build-dep -yy qemu

>>> -

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

>>>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \

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

>> 

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

>

> IIUC if we keep --arch-only in the previous step (previous patch),

> this step is required here.


What for? The --arch-only prevents the attempt to install cross
compilers that don't exist on a given host but we install all the cross
compilers we need for tests explicitly.

-- 
Alex Bennée
Alex Bennée Nov. 2, 2021, 12:24 p.m. UTC | #4
Alex Bennée <alex.bennee@linaro.org> writes:

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

>

>> On 10/18/21 12:54, Alex Bennée wrote:

>>> 

>>> Richard Henderson <richard.henderson@linaro.org> writes:

>>> 

>>>> The base debian10 image contains enough to build qemu;

>>>> we do not need to repeat that within the new image.

>>>>

>>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

>>>> ---

>>>>  tests/docker/dockerfiles/debian-all-test-cross.docker | 5 -----

>>>>  1 file changed, 5 deletions(-)

>>>>

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

>>>> index dedcea58b4..b185b7c15a 100644

>>>> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker

>>>> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker

>>>> @@ -8,11 +8,6 @@

>>>>  #

>>>>  FROM qemu/debian10

>>>>  

>>>> -# What we need to build QEMU itself

>>>> -RUN apt update && \

>>>> -    DEBIAN_FRONTEND=noninteractive eatmydata \

>>>> -    apt build-dep -yy qemu

>>>> -

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

>>>>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \

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

>>> 

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

>>

>> IIUC if we keep --arch-only in the previous step (previous patch),

>> this step is required here.

>

> What for? The --arch-only prevents the attempt to install cross

> compilers that don't exist on a given host but we install all the cross

> compilers we need for tests explicitly.


Well patches 1 & 2 have been a cause of hair tearing the last two days. If
we replace the previous:

 $(apt-get -s build-dep --arch-only qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)

which only installs (all) packages with:

  apt build-dep -yy --arch-only qemu

it breaks all the cross compiler images that are based on on debian10
because suddenly their:

  apt build-dep -yy -a $ARCH --arch-only qemu

will fail to build. However this is somewhat hidden by the fact that
most people pushing to gitlab would have that effect masked as the
images will be based on the older ones in the registry.

Of course I ran into the opposite problem trying to test things as we
aggressively used the upstream registry. As a result of the dropped the
build-dep in the all-cross but without being based on the new image we
end up without enough deps to build stuff.

In short I need to drop the first two patches.

-- 
Alex Bennée
Philippe Mathieu-Daudé Nov. 2, 2021, 2:33 p.m. UTC | #5
On 11/2/21 13:24, Alex Bennée wrote:
> Alex Bennée <alex.bennee@linaro.org> writes:

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

>>> On 10/18/21 12:54, Alex Bennée wrote:

>>>> Richard Henderson <richard.henderson@linaro.org> writes:

>>>>

>>>>> The base debian10 image contains enough to build qemu;

>>>>> we do not need to repeat that within the new image.

>>>>>

>>>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

>>>>> ---

>>>>>  tests/docker/dockerfiles/debian-all-test-cross.docker | 5 -----

>>>>>  1 file changed, 5 deletions(-)

>>>>>

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

>>>>> index dedcea58b4..b185b7c15a 100644

>>>>> --- a/tests/docker/dockerfiles/debian-all-test-cross.docker

>>>>> +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker

>>>>> @@ -8,11 +8,6 @@

>>>>>  #

>>>>>  FROM qemu/debian10

>>>>>  

>>>>> -# What we need to build QEMU itself

>>>>> -RUN apt update && \

>>>>> -    DEBIAN_FRONTEND=noninteractive eatmydata \

>>>>> -    apt build-dep -yy qemu

>>>>> -

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

>>>>>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \

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

>>>>

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

>>>

>>> IIUC if we keep --arch-only in the previous step (previous patch),

>>> this step is required here.

>>

>> What for? The --arch-only prevents the attempt to install cross

>> compilers that don't exist on a given host but we install all the cross

>> compilers we need for tests explicitly.

> 

> Well patches 1 & 2 have been a cause of hair tearing the last two days. If

> we replace the previous:

> 

>  $(apt-get -s build-dep --arch-only qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)

> 

> which only installs (all) packages with:

> 

>   apt build-dep -yy --arch-only qemu

> 

> it breaks all the cross compiler images that are based on on debian10

> because suddenly their:

> 

>   apt build-dep -yy -a $ARCH --arch-only qemu

> 

> will fail to build. However this is somewhat hidden by the fact that

> most people pushing to gitlab would have that effect masked as the

> images will be based on the older ones in the registry.

> 

> Of course I ran into the opposite problem trying to test things as we

> aggressively used the upstream registry. As a result of the dropped the

> build-dep in the all-cross but without being based on the new image we

> end up without enough deps to build stuff.

> 

> In short I need to drop the first two patches.


I remember I had to do it this ugly way to simplify the
rest, and later I came back to it because Peter said it
was confusing, but I couldn't find a easier way to remove
this command.

Today I think we shouldn't bother to include intermediate
Dockerfiles. I'd simply use one plain file and let the
Docker daemon worry about caching/reusing.

But the whole machinery needs some thought since we want
to be able to use non-x86_64 hosts; and on the CI side
we want pulled images to be stable.
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 dedcea58b4..b185b7c15a 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -8,11 +8,6 @@ 
 #
 FROM qemu/debian10
 
-# What we need to build QEMU itself
-RUN apt update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt build-dep -yy qemu
-
 # Add the foreign architecture we want and install dependencies
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         apt install -y --no-install-recommends \