All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: peter.maydell@linaro.org, alex.bennee@linaro.org, qemu-devel@nongnu.org
Subject: Re: [PATCH] tests: docker: support mxe-based mingw builds
Date: Wed, 19 Aug 2020 12:09:54 +0100	[thread overview]
Message-ID: <20200819110954.GG69261@redhat.com> (raw)
In-Reply-To: <a83d1d0d-3f5e-8aa1-801a-aaf844c29587@redhat.com>

On Wed, Aug 19, 2020 at 12:42:44PM +0200, Paolo Bonzini wrote:
> On 19/08/20 10:20, Daniel P. Berrangé wrote:
> > We already have docker containers with MXE based on Debian:
> > 
> >   debian-win32-cross.docker
> >   debian-win64-cross.docker
> > 
> > your image uses a different naming convention, and puts both
> > 32 and 64 bit in the same image.
> 
> Yeah, that's what test-mingw expects.

Ah, I missed that.

> 
> > I feel like we should have the Ubuntu variant follow the same
> > structure and naming as the Debian variant for consistency.
> 
> My patch follows the Fedora variant, so that test-mingw runs.  That
> ensures that NSIS is covered as well.  One possibility could be:
> 
> - create fedora-win*-cross dockerfiles

Yeah, I think that'd make sense, as it'd enable a simple trick we
do in libvirt.

In all the dockerfile recipe we set an env

  ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"

And in other linux-cross builds, we do similar

  ENV MESON_OPTS "--cross-file=i686-linux-gnu"

So now from host side can just invoke  "meson $MESON_OPTS" and it will
do the right thing according to whatever the container image was
installed with, regardless of whether it is a cross, or native build.

This obviously only works if you have separate images for win32
and win64.

> - add ENV FEATURES $FEATURES mingw to the win*-cross dockerfiles
> 
> - look for the feature in test-full and test-quick, and run "make
> installer" if so.

I'd suggest that "make installer" should be a part of "make" not
a separate thing that needs running manually.

eg if we're configure'ing for mingw, configure should check whether
we have the NSIS tools available and if so, then enable NSIS as a
standard build output. We could have a configure option to enable/disable
NSIS explicitly.

This  eliminates the second bit of special casing for mingw

> - drop test-mingw completely, and adjust Patchew to use
> docker-test-quick@fedora-win{32,64}-cross instead

Yes, dropping test-mingw would be better, but I'm not sure you can
use 'test-quick' as that runs unit tests which would require wine
to be present.  'test-build' would be closer to what test-mingw
does.

Anyway, if the images and make rules are created & setup in a suitable
way, there should be no need to do anything special in the host side
for cross-builds - just pick the image you want and it should "just work".

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 :|



  reply	other threads:[~2020-08-19 11:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-19  8:02 [PATCH] tests: docker: support mxe-based mingw builds Paolo Bonzini
2020-08-19  8:13 ` Marc-André Lureau
2020-08-19  8:20 ` Daniel P. Berrangé
2020-08-19 10:42   ` Paolo Bonzini
2020-08-19 11:09     ` Daniel P. Berrangé [this message]
2020-08-19 11:41       ` Paolo Bonzini
2020-08-19  8:59 ` no-reply

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=20200819110954.GG69261@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.