qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: Re: [PATCH 2/4] tests/lcitool: Remove g++ from the containers (except for the MinGW one)
Date: Mon, 13 May 2024 14:05:16 +0200	[thread overview]
Message-ID: <41974e51-cee5-4a62-bcab-db9b78f76aee@redhat.com> (raw)
In-Reply-To: <ZkHrXOR05UkkMn2X@redhat.com>

On 13/05/2024 12.28, Daniel P. Berrangé wrote:
> On Mon, May 13, 2024 at 12:22:50PM +0200, Thomas Huth wrote:
>> We don't need C++ for the normal QEMU builds anymore, so installing
>> g++ in each and every container seems to be a waste of time and disk
>> space. The only container that still needs it is the Fedora MinGW
>> container that builds the only remaining C++ code in ./qga/vss-win32/
>> and we can install it here with an extra RUN statement instead.
>>
>> This way we can also add the mingw-w64-tools package quite easily
>> which contains the x86_64-w64-mingw32-widl program that is required
>> for compiling the vss code of the guest agent (it was missing before
>> this change, so the VSS code was actually never compiled in the CI).
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   tests/lcitool/projects/qemu.yml |  1 -
>>   tests/lcitool/refresh           | 10 ++++++++--
>>   2 files changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
>> index 9173d1e36e..b63b6bd850 100644
>> --- a/tests/lcitool/projects/qemu.yml
>> +++ b/tests/lcitool/projects/qemu.yml
>> @@ -22,7 +22,6 @@ packages:
>>    - findutils
>>    - flex
>>    - fuse3
>> - - g++
>>    - gcc
>>    - gcc-native
>>    - gcovr
>> diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
>> index 24a735a3f2..dda07ddcd1 100755
>> --- a/tests/lcitool/refresh
>> +++ b/tests/lcitool/refresh
>> @@ -109,6 +109,11 @@ debian12_extras = [
>>       "ENV QEMU_CONFIGURE_OPTS --enable-netmap\n"
>>   ]
>>   
>> +fedora_mingw_extras = [ "\n"
>> +    "RUN nosync dnf install -y mingw64-gcc-c++ mingw-w64-tools && \\\n"
>> +    "  ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-c++ && \\\n"
>> +    "  ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-g++\n\n"
>> +]
>>   
>>   def cross_build(prefix, targets):
>>       conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
>> @@ -193,8 +198,9 @@ try:
>>   
>>       generate_dockerfile("fedora-win64-cross", "fedora-38",
>>                           cross="mingw64",
>> -                        trailer=cross_build("x86_64-w64-mingw32-",
>> -                                            "x86_64-softmmu"))
>> +                        trailer="".join(fedora_mingw_extras)
>> +                                + cross_build("x86_64-w64-mingw32-",
>> +                                              "x86_64-softmmu"))
>>   
>>       #
>>       # Cirrus packages lists for GitLab
> 
> A better way to handle this would be to define a separate project
> 
>    'tests/lcitool/projects/qemu-win-installer.yml'
> 
> With
> 
>     packages
>       - g++
> 
> Then enable the extra project for win64
> 
>      generate_dockerfile("fedora-win64-cross", "fedora-38",
>                          project='qemu,qemu-win-installer',
>                          cross="mingw64",
>                          trailer=cross_build("x86_64-w64-mingw32-",
>                                              "x86_64-softmmu"))
> 
> which should result in an identical container to what we have today
> for win64, while letting us slim the other containers.

Ok, good idea! ... but then we need to teach lcitool about mingw-w64-tools 
first, otherwise that vss code won't get built due to the missing "widl" tool.

  Thomas



  reply	other threads:[~2024-05-13 12:06 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-13 10:22 [PATCH 0/4] tests: Remove xfsprogs and g++ from the dockerfiles Thomas Huth
2024-05-13 10:22 ` [PATCH 1/4] tests/lcitool: Remove 'xfsprogs' from QEMU Thomas Huth
2024-05-13 10:22 ` [PATCH 2/4] tests/lcitool: Remove g++ from the containers (except for the MinGW one) Thomas Huth
2024-05-13 10:28   ` Daniel P. Berrangé
2024-05-13 12:05     ` Thomas Huth [this message]
2024-05-13 12:11       ` Daniel P. Berrangé
2024-05-13 14:22         ` Thomas Huth
2024-05-13 14:26           ` Daniel P. Berrangé
2024-05-13 10:22 ` [PATCH 3/4] tests/lcitool/projects/qemu.yml: Sort entries alphabetically again Thomas Huth
2024-05-13 10:22 ` [PATCH 4/4] tests/docker/dockerfiles: Update container files with "lcitool-refresh" Thomas Huth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41974e51-cee5-4a62-bcab-db9b78f76aee@redhat.com \
    --to=thuth@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).