[PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction

Peter Maydell posted 3 patches 9 months, 1 week ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, Yonggang Luo <luoyonggang@gmail.com>
There is a newer version of this series
[PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
Posted by Peter Maydell 9 months, 1 week ago
Now we don't build msys2-32bit we don't need the abstraction out of the
common msys2 handling from the 32-vs-64-bit specifics. Collapse it
down into the msys2-64bit job definition.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 .gitlab-ci.d/windows.yml | 84 +++++++++++++++++++---------------------
 1 file changed, 40 insertions(+), 44 deletions(-)

diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index 8fc08218d28..e784d5a68cd 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -1,4 +1,4 @@
-.shared_msys2_builder:
+msys2-64bit:
   extends: .base_job_template
   tags:
   - shared-windows
@@ -14,9 +14,19 @@
   stage: build
   timeout: 100m
   variables:
+    MINGW_TARGET: mingw-w64-x86_64
+    MSYSTEM: MINGW64
     # This feature doesn't (currently) work with PowerShell, it stops
     # the echo'ing of commands being run and doesn't show any timing
     FF_SCRIPT_SECTIONS: 0
+    # do not remove "--without-default-devices"!
+    # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
+    # changed to compile QEMU with the --without-default-devices switch
+    # for the msys2 64-bit job, due to the build could not complete within
+    CONFIGURE_ARGS:  --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
+    # qTests don't run successfully with "--without-default-devices",
+    # so let's exclude the qtests from CI for now.
+    TEST_ARGS: --no-suite qtest
   artifacts:
     name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
     expire_in: 7 days
@@ -72,33 +82,35 @@
   - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
       bison diffutils flex
       git grep make sed
-      $MINGW_TARGET-binutils
-      $MINGW_TARGET-capstone
-      $MINGW_TARGET-ccache
-      $MINGW_TARGET-curl
-      $MINGW_TARGET-cyrus-sasl
-      $MINGW_TARGET-dtc
-      $MINGW_TARGET-gcc
-      $MINGW_TARGET-glib2
-      $MINGW_TARGET-gnutls
-      $MINGW_TARGET-gtk3
-      $MINGW_TARGET-libgcrypt
-      $MINGW_TARGET-libjpeg-turbo
-      $MINGW_TARGET-libnfs
-      $MINGW_TARGET-libpng
-      $MINGW_TARGET-libssh
-      $MINGW_TARGET-libtasn1
-      $MINGW_TARGET-lzo2
-      $MINGW_TARGET-nettle
-      $MINGW_TARGET-ninja
-      $MINGW_TARGET-pixman
-      $MINGW_TARGET-pkgconf
-      $MINGW_TARGET-python
-      $MINGW_TARGET-SDL2
-      $MINGW_TARGET-SDL2_image
-      $MINGW_TARGET-snappy
-      $MINGW_TARGET-zstd
-      $EXTRA_PACKAGES "
+      mingw-w64-x86_64-binutils
+      mingw-w64-x86_64-capstone
+      mingw-w64-x86_64-ccache
+      mingw-w64-x86_64-curl
+      mingw-w64-x86_64-cyrus-sasl
+      mingw-w64-x86_64-dtc
+      mingw-w64-x86_64-gcc
+      mingw-w64-x86_64-glib2
+      mingw-w64-x86_64-gnutls
+      mingw-w64-x86_64-gtk3
+      mingw-w64-x86_64-libgcrypt
+      mingw-w64-x86_64-libjpeg-turbo
+      mingw-w64-x86_64-libnfs
+      mingw-w64-x86_64-libpng
+      mingw-w64-x86_64-libssh
+      mingw-w64-x86_64-libtasn1
+      mingw-w64-x86_64-libusb
+      mingw-w64-x86_64-lzo2
+      mingw-w64-x86_64-nettle
+      mingw-w64-x86_64-ninja
+      mingw-w64-x86_64-pixman
+      mingw-w64-x86_64-pkgconf
+      mingw-w64-x86_64-python
+      mingw-w64-x86_64-SDL2
+      mingw-w64-x86_64-SDL2_image
+      mingw-w64-x86_64-snappy
+      mingw-w64-x86_64-spice
+      mingw-w64-x86_64-usbredir
+      mingw-w64-x86_64-zstd"
   - Write-Output "Running build at $(Get-Date -Format u)"
   - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
   - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
@@ -115,19 +127,3 @@
   - ..\msys64\usr\bin\bash -lc "make check MTESTARGS='$TEST_ARGS' || { cat meson-logs/testlog.txt; exit 1; } ;"
   - ..\msys64\usr\bin\bash -lc "ccache --show-stats"
   - Write-Output "Finished build at $(Get-Date -Format u)"
-
-msys2-64bit:
-  extends: .shared_msys2_builder
-  variables:
-    MINGW_TARGET: mingw-w64-x86_64
-    MSYSTEM: MINGW64
-    # msys2 only ship these packages for 64-bit, not 32-bit
-    EXTRA_PACKAGES: $MINGW_TARGET-libusb $MINGW_TARGET-usbredir $MINGW_TARGET-spice
-    # do not remove "--without-default-devices"!
-    # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
-    # changed to compile QEMU with the --without-default-devices switch
-    # for the msys2 64-bit job, due to the build could not complete within
-    CONFIGURE_ARGS:  --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
-    # qTests don't run successfully with "--without-default-devices",
-    # so let's exclude the qtests from CI for now.
-    TEST_ARGS: --no-suite qtest
-- 
2.34.1
Re: [PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
Posted by Philippe Mathieu-Daudé 9 months, 1 week ago
On 20/2/24 18:44, Peter Maydell wrote:
> Now we don't build msys2-32bit we don't need the abstraction out of the
> common msys2 handling from the 32-vs-64-bit specifics. Collapse it
> down into the msys2-64bit job definition.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   .gitlab-ci.d/windows.yml | 84 +++++++++++++++++++---------------------
>   1 file changed, 40 insertions(+), 44 deletions(-)
> 
> diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> index 8fc08218d28..e784d5a68cd 100644
> --- a/.gitlab-ci.d/windows.yml
> +++ b/.gitlab-ci.d/windows.yml
> @@ -1,4 +1,4 @@
> -.shared_msys2_builder:
> +msys2-64bit:
>     extends: .base_job_template
>     tags:
>     - shared-windows
> @@ -14,9 +14,19 @@
>     stage: build
>     timeout: 100m
>     variables:
> +    MINGW_TARGET: mingw-w64-x86_64

You expanded $MINGW_TARGET so we can remove it.

> +    MSYSTEM: MINGW64
>       # This feature doesn't (currently) work with PowerShell, it stops
>       # the echo'ing of commands being run and doesn't show any timing
>       FF_SCRIPT_SECTIONS: 0
> +    # do not remove "--without-default-devices"!
> +    # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
> +    # changed to compile QEMU with the --without-default-devices switch
> +    # for the msys2 64-bit job, due to the build could not complete within

s/the msys2 64-bit/this/, although it seems this sentence got truncated.

> +    CONFIGURE_ARGS:  --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
> +    # qTests don't run successfully with "--without-default-devices",
> +    # so let's exclude the qtests from CI for now.
> +    TEST_ARGS: --no-suite qtest
>     artifacts:
>       name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
>       expire_in: 7 days

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Re: [PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
Posted by Peter Maydell 9 months, 1 week ago
On Tue, 20 Feb 2024 at 18:50, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> On 20/2/24 18:44, Peter Maydell wrote:
> > Now we don't build msys2-32bit we don't need the abstraction out of the
> > common msys2 handling from the 32-vs-64-bit specifics. Collapse it
> > down into the msys2-64bit job definition.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > ---
> >   .gitlab-ci.d/windows.yml | 84 +++++++++++++++++++---------------------
> >   1 file changed, 40 insertions(+), 44 deletions(-)
> >
> > diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> > index 8fc08218d28..e784d5a68cd 100644
> > --- a/.gitlab-ci.d/windows.yml
> > +++ b/.gitlab-ci.d/windows.yml
> > @@ -1,4 +1,4 @@
> > -.shared_msys2_builder:
> > +msys2-64bit:
> >     extends: .base_job_template
> >     tags:
> >     - shared-windows
> > @@ -14,9 +14,19 @@
> >     stage: build
> >     timeout: 100m
> >     variables:
> > +    MINGW_TARGET: mingw-w64-x86_64
>
> You expanded $MINGW_TARGET so we can remove it.
>
> > +    MSYSTEM: MINGW64
> >       # This feature doesn't (currently) work with PowerShell, it stops
> >       # the echo'ing of commands being run and doesn't show any timing
> >       FF_SCRIPT_SECTIONS: 0
> > +    # do not remove "--without-default-devices"!
> > +    # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
> > +    # changed to compile QEMU with the --without-default-devices switch
> > +    # for the msys2 64-bit job, due to the build could not complete within
>
> s/the msys2 64-bit/this/, although it seems this sentence got truncated.

Looks like commit 11961d08fcbddf accidentally dropped a line
when refactoring the file; it should end:
  # the project timeout.

-- PMM
Re: [PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
Posted by Daniel P. Berrangé 9 months, 1 week ago
On Tue, Feb 20, 2024 at 05:44:12PM +0000, Peter Maydell wrote:
> Now we don't build msys2-32bit we don't need the abstraction out of the
> common msys2 handling from the 32-vs-64-bit specifics. Collapse it
> down into the msys2-64bit job definition.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  .gitlab-ci.d/windows.yml | 84 +++++++++++++++++++---------------------
>  1 file changed, 40 insertions(+), 44 deletions(-)
> 
> diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> index 8fc08218d28..e784d5a68cd 100644
> --- a/.gitlab-ci.d/windows.yml
> +++ b/.gitlab-ci.d/windows.yml
> @@ -1,4 +1,4 @@
> -.shared_msys2_builder:
> +msys2-64bit:
>    extends: .base_job_template
>    tags:
>    - shared-windows
> @@ -14,9 +14,19 @@
>    stage: build
>    timeout: 100m
>    variables:
> +    MINGW_TARGET: mingw-w64-x86_64

This var isn't needed since you remove the only usage of it.

> +    MSYSTEM: MINGW64

I'm fuzzy on whether this is needed or not ?   We don't use it,
but perhaps it is something MSys wants set ?

>      # This feature doesn't (currently) work with PowerShell, it stops
>      # the echo'ing of commands being run and doesn't show any timing
>      FF_SCRIPT_SECTIONS: 0
> +    # do not remove "--without-default-devices"!
> +    # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
> +    # changed to compile QEMU with the --without-default-devices switch
> +    # for the msys2 64-bit job, due to the build could not complete within
> +    CONFIGURE_ARGS:  --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
> +    # qTests don't run successfully with "--without-default-devices",
> +    # so let's exclude the qtests from CI for now.
> +    TEST_ARGS: --no-suite qtest
>    artifacts:
>      name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
>      expire_in: 7 days
> @@ -72,33 +82,35 @@
>    - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
>        bison diffutils flex
>        git grep make sed
> -      $MINGW_TARGET-binutils
> -      $MINGW_TARGET-capstone
> -      $MINGW_TARGET-ccache
> -      $MINGW_TARGET-curl
> -      $MINGW_TARGET-cyrus-sasl
> -      $MINGW_TARGET-dtc
> -      $MINGW_TARGET-gcc
> -      $MINGW_TARGET-glib2
> -      $MINGW_TARGET-gnutls
> -      $MINGW_TARGET-gtk3
> -      $MINGW_TARGET-libgcrypt
> -      $MINGW_TARGET-libjpeg-turbo
> -      $MINGW_TARGET-libnfs
> -      $MINGW_TARGET-libpng
> -      $MINGW_TARGET-libssh
> -      $MINGW_TARGET-libtasn1
> -      $MINGW_TARGET-lzo2
> -      $MINGW_TARGET-nettle
> -      $MINGW_TARGET-ninja
> -      $MINGW_TARGET-pixman
> -      $MINGW_TARGET-pkgconf
> -      $MINGW_TARGET-python
> -      $MINGW_TARGET-SDL2
> -      $MINGW_TARGET-SDL2_image
> -      $MINGW_TARGET-snappy
> -      $MINGW_TARGET-zstd
> -      $EXTRA_PACKAGES "
> +      mingw-w64-x86_64-binutils
> +      mingw-w64-x86_64-capstone
> +      mingw-w64-x86_64-ccache
> +      mingw-w64-x86_64-curl
> +      mingw-w64-x86_64-cyrus-sasl
> +      mingw-w64-x86_64-dtc
> +      mingw-w64-x86_64-gcc
> +      mingw-w64-x86_64-glib2
> +      mingw-w64-x86_64-gnutls
> +      mingw-w64-x86_64-gtk3
> +      mingw-w64-x86_64-libgcrypt
> +      mingw-w64-x86_64-libjpeg-turbo
> +      mingw-w64-x86_64-libnfs
> +      mingw-w64-x86_64-libpng
> +      mingw-w64-x86_64-libssh
> +      mingw-w64-x86_64-libtasn1
> +      mingw-w64-x86_64-libusb
> +      mingw-w64-x86_64-lzo2
> +      mingw-w64-x86_64-nettle
> +      mingw-w64-x86_64-ninja
> +      mingw-w64-x86_64-pixman
> +      mingw-w64-x86_64-pkgconf
> +      mingw-w64-x86_64-python
> +      mingw-w64-x86_64-SDL2
> +      mingw-w64-x86_64-SDL2_image
> +      mingw-w64-x86_64-snappy
> +      mingw-w64-x86_64-spice
> +      mingw-w64-x86_64-usbredir
> +      mingw-w64-x86_64-zstd"
>    - Write-Output "Running build at $(Get-Date -Format u)"
>    - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
>    - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
> @@ -115,19 +127,3 @@
>    - ..\msys64\usr\bin\bash -lc "make check MTESTARGS='$TEST_ARGS' || { cat meson-logs/testlog.txt; exit 1; } ;"
>    - ..\msys64\usr\bin\bash -lc "ccache --show-stats"
>    - Write-Output "Finished build at $(Get-Date -Format u)"
> -
> -msys2-64bit:
> -  extends: .shared_msys2_builder
> -  variables:
> -    MINGW_TARGET: mingw-w64-x86_64
> -    MSYSTEM: MINGW64
> -    # msys2 only ship these packages for 64-bit, not 32-bit
> -    EXTRA_PACKAGES: $MINGW_TARGET-libusb $MINGW_TARGET-usbredir $MINGW_TARGET-spice
> -    # do not remove "--without-default-devices"!
> -    # commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
> -    # changed to compile QEMU with the --without-default-devices switch
> -    # for the msys2 64-bit job, due to the build could not complete within
> -    CONFIGURE_ARGS:  --target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0
> -    # qTests don't run successfully with "--without-default-devices",
> -    # so let's exclude the qtests from CI for now.
> -    TEST_ARGS: --no-suite qtest
> -- 
> 2.34.1
> 

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 :|
Re: [PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
Posted by Thomas Huth 9 months, 1 week ago
On 20/02/2024 19.06, Daniel P. Berrangé wrote:
> On Tue, Feb 20, 2024 at 05:44:12PM +0000, Peter Maydell wrote:
>> Now we don't build msys2-32bit we don't need the abstraction out of the
>> common msys2 handling from the 32-vs-64-bit specifics. Collapse it
>> down into the msys2-64bit job definition.
>>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>> ---
>>   .gitlab-ci.d/windows.yml | 84 +++++++++++++++++++---------------------
>>   1 file changed, 40 insertions(+), 44 deletions(-)
>>
>> diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
>> index 8fc08218d28..e784d5a68cd 100644
>> --- a/.gitlab-ci.d/windows.yml
>> +++ b/.gitlab-ci.d/windows.yml
>> @@ -1,4 +1,4 @@
>> -.shared_msys2_builder:
>> +msys2-64bit:
>>     extends: .base_job_template
>>     tags:
>>     - shared-windows
>> @@ -14,9 +14,19 @@
>>     stage: build
>>     timeout: 100m
>>     variables:
>> +    MINGW_TARGET: mingw-w64-x86_64
> 
> This var isn't needed since you remove the only usage of it.
> 
>> +    MSYSTEM: MINGW64
> 
> I'm fuzzy on whether this is needed or not ?   We don't use it,
> but perhaps it is something MSys wants set ?

We've had this in the very first version of this file already:

  - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment

So I think this is required by MSYS.

  Thomas



Re: [PATCH 3/3] .gitlab-ci.d/windows.yml: Remove shared-msys2 abstraction
Posted by Peter Maydell 9 months, 1 week ago
On Wed, 21 Feb 2024 at 07:16, Thomas Huth <thuth@redhat.com> wrote:
>
> On 20/02/2024 19.06, Daniel P. Berrangé wrote:
> > On Tue, Feb 20, 2024 at 05:44:12PM +0000, Peter Maydell wrote:
> >> Now we don't build msys2-32bit we don't need the abstraction out of the
> >> common msys2 handling from the 32-vs-64-bit specifics. Collapse it
> >> down into the msys2-64bit job definition.
> >>
> >> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> >> ---
> >>   .gitlab-ci.d/windows.yml | 84 +++++++++++++++++++---------------------
> >>   1 file changed, 40 insertions(+), 44 deletions(-)
> >>
> >> diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> >> index 8fc08218d28..e784d5a68cd 100644
> >> --- a/.gitlab-ci.d/windows.yml
> >> +++ b/.gitlab-ci.d/windows.yml
> >> @@ -1,4 +1,4 @@
> >> -.shared_msys2_builder:
> >> +msys2-64bit:
> >>     extends: .base_job_template
> >>     tags:
> >>     - shared-windows
> >> @@ -14,9 +14,19 @@
> >>     stage: build
> >>     timeout: 100m
> >>     variables:
> >> +    MINGW_TARGET: mingw-w64-x86_64
> >
> > This var isn't needed since you remove the only usage of it.
> >
> >> +    MSYSTEM: MINGW64
> >
> > I'm fuzzy on whether this is needed or not ?   We don't use it,
> > but perhaps it is something MSys wants set ?
>
> We've had this in the very first version of this file already:
>
>   - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
>
> So I think this is required by MSYS.

Yes; it selects the compiler and C library to build with:
https://www.msys2.org/docs/environments/

-- PMM