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 16:22:00 +0200 [thread overview]
Message-ID: <22d84c81-7c7b-4656-8606-cf919b26d0a1@redhat.com> (raw)
In-Reply-To: <ZkIDYTTtMlX20-xW@redhat.com>
On 13/05/2024 14.11, Daniel P. Berrangé wrote:
> On Mon, May 13, 2024 at 02:05:16PM +0200, Thomas Huth wrote:
>> 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.
>
> Why is that a pre-requisite ? What i've suggested will result in a
> Dockerfile for win64 that is 100% identical to what we already have
> in git today. So surely that will already succeed to the same extent
> that CI succeeds today ?
If you want to have the same result, we can also simply remove g++
everywhere, also for the mingw cross containers, since the vss code is
currently not built at all due to the missing widl program.
Thomas
next prev parent reply other threads:[~2024-05-13 14:22 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
2024-05-13 12:11 ` Daniel P. Berrangé
2024-05-13 14:22 ` Thomas Huth [this message]
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=22d84c81-7c7b-4656-8606-cf919b26d0a1@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).