[PATCH] tests/docker: Use binaries for debian-tricore-cross

Bastian Koppelmann posted 1 patch 1 year, 1 month ago
There is a newer version of this series
.../dockerfiles/debian-tricore-cross.docker    | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
[PATCH] tests/docker: Use binaries for debian-tricore-cross
Posted by Bastian Koppelmann 1 year, 1 month ago
since binutils is pretty old, it fails our CI repeatedly during the
compilation of tricore-binutils. We created a precompiled version using
the debian docker image and download it instead of building it ourself.

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
---
Peter, I was having trouble with the new version of binutils, I mentioned. I
think this needs more time to sort out. So for now, let's just use a precompiled
version of the current binutils.

 .../dockerfiles/debian-tricore-cross.docker    | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker
index 5ae58efa09..4abcf07e68 100644
--- a/tests/docker/dockerfiles/debian-tricore-cross.docker
+++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
@@ -16,32 +16,20 @@ MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
 RUN apt update && \
     DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
     DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
-       bison \
+       curl \
        bzip2 \
        ca-certificates \
-       ccache \
-       flex \
-       g++ \
-       gcc \
-       git \
        libglib2.0-dev \
        libpixman-1-dev \
        locales \
-       make \
        ninja-build \
        pkgconf \
        python3-pip \
        python3-setuptools \
        python3-wheel
 
-RUN git clone --single-branch \
-        https://github.com/bkoppelmann/tricore-binutils.git \
-        /usr/src/binutils && \
-    cd /usr/src/binutils && chmod +x missing && \
-    CFLAGS=-w ./configure --prefix=/usr/local --disable-nls --target=tricore && \
-    make && make install && \
-    rm -rf /usr/src/binutils
-
+RUN curl -#SL https://github.com/bkoppelmann/tricore-binutils/raw/master/release/tricore-binutils.2.13.tar.gz \
+    | tar -xzC /usr/local/
 # This image can only build a very minimal QEMU as well as the tests
 ENV DEF_TARGET_LIST tricore-softmmu
 ENV QEMU_CONFIGURE_OPTS --disable-user --disable-tools --disable-fdt
-- 
2.39.1


Re: [PATCH] tests/docker: Use binaries for debian-tricore-cross
Posted by Philippe Mathieu-Daudé 1 year, 1 month ago
Hi Bastian,

On 3/2/23 15:54, Bastian Koppelmann wrote:
> since binutils is pretty old, it fails our CI repeatedly during the
> compilation of tricore-binutils. We created a precompiled version using
> the debian docker image and download it instead of building it ourself.
> 
> Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> ---
> Peter, I was having trouble with the new version of binutils, I mentioned. I
> think this needs more time to sort out. So for now, let's just use a precompiled
> version of the current binutils.
> 
>   .../dockerfiles/debian-tricore-cross.docker    | 18 +++---------------
>   1 file changed, 3 insertions(+), 15 deletions(-)
> 
> diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker
> index 5ae58efa09..4abcf07e68 100644
> --- a/tests/docker/dockerfiles/debian-tricore-cross.docker
> +++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
> @@ -16,32 +16,20 @@ MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
>   RUN apt update && \
>       DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
>       DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
> -       bison \
> +       curl \
>          bzip2 \
>          ca-certificates \
> -       ccache \

You might not use ccache, but others do, so please let it:

$ git grep DOCKER_CCACHE
tests/docker/Makefile.include:203:DOCKER_CCACHE_DIR := 
$$HOME/.cache/qemu-docker-ccache
tests/docker/Makefile.include:212:      @mkdir -p "$(DOCKER_CCACHE_DIR)"
tests/docker/Makefile.include:234:                              -v 
$(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \

> -       flex \
> -       g++ \
> -       gcc \
> -       git \
>          libglib2.0-dev \
>          libpixman-1-dev \
>          locales \
> -       make \

Why remove gcc/(git)/make?

>          ninja-build \
>          pkgconf \
>          python3-pip \
>          python3-setuptools \
>          python3-wheel
>   
> -RUN git clone --single-branch \
> -        https://github.com/bkoppelmann/tricore-binutils.git \
> -        /usr/src/binutils && \
> -    cd /usr/src/binutils && chmod +x missing && \
> -    CFLAGS=-w ./configure --prefix=/usr/local --disable-nls --target=tricore && \
> -    make && make install && \
> -    rm -rf /usr/src/binutils
> -
> +RUN curl -#SL https://github.com/bkoppelmann/tricore-binutils/raw/master/release/tricore-binutils.2.13.tar.gz \
> +    | tar -xzC /usr/local/
>   # This image can only build a very minimal QEMU as well as the tests
>   ENV DEF_TARGET_LIST tricore-softmmu
>   ENV QEMU_CONFIGURE_OPTS --disable-user --disable-tools --disable-fdt


Re: [PATCH] tests/docker: Use binaries for debian-tricore-cross
Posted by Alex Bennée 1 year, 1 month ago
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> Hi Bastian,
>
> On 3/2/23 15:54, Bastian Koppelmann wrote:
>> since binutils is pretty old, it fails our CI repeatedly during the
>> compilation of tricore-binutils. We created a precompiled version using
>> the debian docker image and download it instead of building it ourself.
>> Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
>> ---
>> Peter, I was having trouble with the new version of binutils, I mentioned. I
>> think this needs more time to sort out. So for now, let's just use a precompiled
>> version of the current binutils.
>>   .../dockerfiles/debian-tricore-cross.docker    | 18
>> +++---------------
>>   1 file changed, 3 insertions(+), 15 deletions(-)
>> diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker
>> b/tests/docker/dockerfiles/debian-tricore-cross.docker
>> index 5ae58efa09..4abcf07e68 100644
>> --- a/tests/docker/dockerfiles/debian-tricore-cross.docker
>> +++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
>> @@ -16,32 +16,20 @@ MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
>>   RUN apt update && \
>>       DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
>>       DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
>> -       bison \
>> +       curl \
>>          bzip2 \
>>          ca-certificates \
>> -       ccache \
>
> You might not use ccache, but others do, so please let it:
>
> $ git grep DOCKER_CCACHE
> tests/docker/Makefile.include:203:DOCKER_CCACHE_DIR :=
> $$HOME/.cache/qemu-docker-ccache
> tests/docker/Makefile.include:212:      @mkdir -p "$(DOCKER_CCACHE_DIR)"
> tests/docker/Makefile.include:234:                              -v
> $(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \
>
>> -       flex \
>> -       g++ \
>> -       gcc \
>> -       git \
>>          libglib2.0-dev \
>>          libpixman-1-dev \
>>          locales \
>> -       make \
>
> Why remove gcc/(git)/make?

In retrospect 39ce923732 (gitlab: enable a very minimal build with the
tricore container) could have made the minimal qemu build requirements
clearer in the comment text at the top of the container.

>
>>          ninja-build \
>>          pkgconf \
>>          python3-pip \
>>          python3-setuptools \
>>          python3-wheel
>>   -RUN git clone --single-branch \
>> -        https://github.com/bkoppelmann/tricore-binutils.git \
>> -        /usr/src/binutils && \
>> -    cd /usr/src/binutils && chmod +x missing && \
>> -    CFLAGS=-w ./configure --prefix=/usr/local --disable-nls --target=tricore && \
>> -    make && make install && \
>> -    rm -rf /usr/src/binutils
>> -
>> +RUN curl -#SL https://github.com/bkoppelmann/tricore-binutils/raw/master/release/tricore-binutils.2.13.tar.gz \
>> +    | tar -xzC /usr/local/
>>   # This image can only build a very minimal QEMU as well as the tests
>>   ENV DEF_TARGET_LIST tricore-softmmu
>>   ENV QEMU_CONFIGURE_OPTS --disable-user --disable-tools --disable-fdt


-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PATCH] tests/docker: Use binaries for debian-tricore-cross
Posted by Bastian Koppelmann 1 year, 1 month ago
Hi Phil,

On Fri, Feb 03, 2023 at 04:02:16PM +0100, Philippe Mathieu-Daudé wrote:
> Hi Bastian,
> 
> On 3/2/23 15:54, Bastian Koppelmann wrote:
> > since binutils is pretty old, it fails our CI repeatedly during the
> > compilation of tricore-binutils. We created a precompiled version using
> > the debian docker image and download it instead of building it ourself.
> > 
> > Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> > ---
> > Peter, I was having trouble with the new version of binutils, I mentioned. I
> > think this needs more time to sort out. So for now, let's just use a precompiled
> > version of the current binutils.
> > 
> >   .../dockerfiles/debian-tricore-cross.docker    | 18 +++---------------
> >   1 file changed, 3 insertions(+), 15 deletions(-)
> > 
> > diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker
> > index 5ae58efa09..4abcf07e68 100644
> > --- a/tests/docker/dockerfiles/debian-tricore-cross.docker
> > +++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
> > @@ -16,32 +16,20 @@ MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
> >   RUN apt update && \
> >       DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
> >       DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
> > -       bison \
> > +       curl \
> >          bzip2 \
> >          ca-certificates \
> > -       ccache \
> 
> You might not use ccache, but others do, so please let it:
> 
> $ git grep DOCKER_CCACHE
> tests/docker/Makefile.include:203:DOCKER_CCACHE_DIR :=
> $$HOME/.cache/qemu-docker-ccache
> tests/docker/Makefile.include:212:      @mkdir -p "$(DOCKER_CCACHE_DIR)"
> tests/docker/Makefile.include:234:                              -v
> $(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \
> 
> > -       flex \
> > -       g++ \
> > -       gcc \
> > -       git \
> >          libglib2.0-dev \
> >          libpixman-1-dev \
> >          locales \
> > -       make \
> 
> Why remove gcc/(git)/make?

I'm not cloning any repository and not building anything. Why download things, if we
don't need them?

Anyways, if you prefer, then I can revert the changes to the installed packages.

Cheers,
Bastian