[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/7] tests/docker: Simplify debian-all-test-cross
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 2/7] tests/docker: Simplify debian-all-test-cross |
Date: |
Tue, 2 Nov 2021 15:33:09 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
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.