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 <th...@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 ? With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|