All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>
Cc: "Daniel P . Berrangé" <berrange@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Cleber Rosa" <crosa@redhat.com>, "John Snow" <jsnow@redhat.com>
Subject: [PATCH 1/7] tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI
Date: Mon, 21 Sep 2020 19:43:14 +0200	[thread overview]
Message-ID: <20200921174320.46062-2-thuth@redhat.com> (raw)
In-Reply-To: <20200921174320.46062-1-thuth@redhat.com>

According to our support policy, we do not support Debian 9 in QEMU
anymore, and we only support building the Windows binaries with a
very recent version of the MinGW toolchain. So we should not test
the MinGW cross-compilation with Debian 9 anymore, but switch to
something newer like Fedora. To do this, we need a separate Fedora
container for each build that provides the QEMU_CONFIGURE_OPTS
environment variable.
Unfortunately, the MinGW 64-bit compiler seems to be a little bit
slow, so we also have to disable some features like "capstone" in the
build here to make sure that the CI pipelines still finish within a
reasonable amount of time.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/containers.yml                   | 10 +++++
 .gitlab-ci.d/crossbuilds.yml                  |  4 +-
 .../dockerfiles/fedora-win32-cross.docker     | 42 +++++++++++++++++++
 .../dockerfiles/fedora-win64-cross.docker     | 38 +++++++++++++++++
 4 files changed, 92 insertions(+), 2 deletions(-)
 create mode 100644 tests/docker/dockerfiles/fedora-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/fedora-win64-cross.docker

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 8c89efeb6d..15e7b564f9 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -248,6 +248,16 @@ i386-fedora-cross-container:
   variables:
     NAME: fedora-i386-cross
 
+win32-fedora-cross-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-win32-cross
+
+win64-fedora-cross-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-win64-cross
+
 amd64-ubuntu1804-container:
   <<: *container_job_definition
   variables:
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 4ec7226b5c..510cfec03b 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -105,9 +105,9 @@ cross-s390x-user:
 cross-win32-system:
   <<: *cross_system_build_job_definition
   variables:
-    IMAGE: debian-win32-cross
+    IMAGE: fedora-win32-cross
 
 cross-win64-system:
   <<: *cross_system_build_job_definition
   variables:
-    IMAGE: debian-win64-cross
+    IMAGE: fedora-win64-cross
diff --git a/tests/docker/dockerfiles/fedora-win32-cross.docker b/tests/docker/dockerfiles/fedora-win32-cross.docker
new file mode 100644
index 0000000000..5903e1b0b4
--- /dev/null
+++ b/tests/docker/dockerfiles/fedora-win32-cross.docker
@@ -0,0 +1,42 @@
+FROM fedora:32
+
+# Please keep this list sorted alphabetically
+ENV PACKAGES \
+    bc \
+    bzip2 \
+    diffutils \
+    findutils \
+    gcc \
+    gettext \
+    git \
+    hostname \
+    make \
+    meson \
+    mingw32-bzip2 \
+    mingw32-curl \
+    mingw32-glib2 \
+    mingw32-gmp \
+    mingw32-gnutls \
+    mingw32-gtk3 \
+    mingw32-libjpeg-turbo \
+    mingw32-libpng \
+    mingw32-libtasn1 \
+    mingw32-nettle \
+    mingw32-nsis \
+    mingw32-pixman \
+    mingw32-pkg-config \
+    mingw32-SDL2 \
+    perl \
+    perl-Test-Harness \
+    python3 \
+    python3-PyYAML \
+    python3-setuptools \
+    tar \
+    which
+
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
+ENV FEATURES mingw
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-w64-mingw32-
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
new file mode 100644
index 0000000000..7f03cd8ffc
--- /dev/null
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -0,0 +1,38 @@
+FROM fedora:32
+
+# Please keep this list sorted alphabetically
+ENV PACKAGES \
+    bc \
+    bzip2 \
+    diffutils \
+    findutils \
+    gcc \
+    gettext \
+    git \
+    hostname \
+    make \
+    meson \
+    mingw64-bzip2 \
+    mingw64-curl \
+    mingw64-glib2 \
+    mingw64-gmp \
+    mingw64-gtk3 \
+    mingw64-libjpeg-turbo \
+    mingw64-libpng \
+    mingw64-libtasn1 \
+    mingw64-pixman \
+    mingw64-pkg-config \
+    perl \
+    perl-Test-Harness \
+    python3 \
+    python3-PyYAML \
+    python3-setuptools \
+    tar \
+    which
+
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
+ENV FEATURES mingw
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32- --disable-capstone
-- 
2.18.2



  reply	other threads:[~2020-09-21 17:55 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-21 17:43 [PATCH 0/7] Do not support Debian 9 and Python 3.5 anymore Thomas Huth
2020-09-21 17:43 ` Thomas Huth [this message]
2020-09-21 18:03   ` [PATCH 1/7] tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI Daniel P. Berrangé
2020-09-21 18:07     ` Thomas Huth
2020-09-22  8:21       ` Daniel P. Berrangé
2020-09-21 17:43 ` [PATCH 2/7] gitlab-ci: Remove the Debian9-based containers and containers-layer3 Thomas Huth
2020-09-21 18:05   ` Daniel P. Berrangé
2020-09-21 17:43 ` [PATCH 3/7] tests/docker: Update the tricore container to debian 10 Thomas Huth
2020-09-21 18:05   ` Daniel P. Berrangé
2020-09-22 10:35   ` Philippe Mathieu-Daudé
2020-09-21 17:43 ` [PATCH 4/7] shippable.yml: Remove the Debian9-based MinGW cross-compiler tests Thomas Huth
2020-09-21 18:07   ` Daniel P. Berrangé
2020-09-21 18:10     ` Thomas Huth
2020-09-22 10:38       ` Philippe Mathieu-Daudé
2020-09-21 17:43 ` [PATCH 5/7] tests/docker: Remove old Debian 9 containers Thomas Huth
2020-09-21 18:08   ` Daniel P. Berrangé
2020-09-22 10:39   ` Philippe Mathieu-Daudé
2020-09-21 17:43 ` [PATCH 6/7] gitlab-ci: Increase the timeout for the cross-compiler builds Thomas Huth
2020-09-21 18:09   ` Daniel P. Berrangé
2020-09-22 10:40   ` Philippe Mathieu-Daudé
2020-09-21 17:43 ` [PATCH 7/7] configure: Bump the minimum required Python version to 3.6 Thomas Huth
2020-09-21 18:04   ` John Snow
2020-09-22 10:55     ` Peter Maydell
2020-09-23 16:29       ` [PATCH v2 " Thomas Huth
2020-09-23 16:34         ` 罗勇刚(Yonggang Luo)
2020-09-23 16:44           ` Thomas Huth
2020-09-22 14:15     ` [PATCH " Markus Armbruster
2020-09-21 18:09   ` Daniel P. Berrangé
2020-09-21 18:09 ` [PATCH 0/7] Do not support Debian 9 and Python 3.5 anymore Alex Bennée
2020-09-22  7:06   ` Thomas Huth
2020-09-22  8:38     ` Alex Bennée

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=20200921174320.46062-2-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=wainersm@redhat.com \
    /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.