Message ID | 20200909094617.1582-7-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | W32, W64 msys2/mingw patches | expand |
On Wed, Sep 09, 2020 at 05:46:02PM +0800, Yonggang Luo wrote: > Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699 > The https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 need to be updated. > There is no need of --cross-prefix, open mingw64.exe instead of msys2.exe then we don't > need the --cross-prefix, besides we using environment variable settings: > MSYS: winsymlinks:nativestrict > MSYSTEM: MINGW64 > CHERE_INVOKING: 1 > to opening mingw64 native shell. > We now running tests with make -i check to skip tests errors. > > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> > --- > .cirrus.yml | 24 +++++++++++++++++++++ > scripts/ci/windows/msys2-build.sh | 28 ++++++++++++++++++++++++ > scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++ > 3 files changed, 85 insertions(+) > create mode 100644 scripts/ci/windows/msys2-build.sh > create mode 100644 scripts/ci/windows/msys2-install.sh > > diff --git a/.cirrus.yml b/.cirrus.yml > index 3dd9fcff7f..49335e68c9 100644 > --- a/.cirrus.yml > +++ b/.cirrus.yml > @@ -63,3 +63,27 @@ macos_xcode_task: > --enable-werror --cc=clang || { cat config.log; exit 1; } > - gmake -j$(sysctl -n hw.ncpu) > - gmake check > + > +windows_msys2_task: > + windows_container: > + image: cirrusci/windowsservercore:cmake > + os_version: 2019 > + cpu: 8 > + memory: 8G > + env: > + MSYS: winsymlinks:nativestrict > + MSYSTEM: MINGW64 > + CHERE_INVOKING: 1 > + printenv_script: > + - C:\tools\msys64\usr\bin\bash.exe -lc 'printenv' > + install_script: > + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" > + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" > + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm" > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime" > + - taskkill /F /IM gpg-agent.exe > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su" > + - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-install.sh" > + script: > + - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-build.sh" > diff --git a/scripts/ci/windows/msys2-build.sh b/scripts/ci/windows/msys2-build.sh > new file mode 100644 > index 0000000000..d9d046b5b0 > --- /dev/null > +++ b/scripts/ci/windows/msys2-build.sh > @@ -0,0 +1,28 @@ > +mkdir build > +cd build > +../configure \ > +--python=python3 \ > +--ninja=ninja \ > +--enable-stack-protector \ > +--enable-guest-agent \ > +--disable-pie \ > +--enable-gnutls --enable-nettle \ > +--enable-sdl --enable-sdl-image --enable-gtk --disable-vte --enable-curses --enable-iconv \ > +--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \ > +--enable-slirp=git \ > +--disable-brlapi --enable-curl \ > +--enable-fdt \ > +--disable-kvm --enable-hax --enable-whpx \ > +--enable-libnfs --enable-libusb --enable-live-block-migration --enable-usb-redir \ > +--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \ > +--enable-membarrier --enable-coroutine-pool \ > +--enable-libssh --enable-libxml2 \ > +--enable-jemalloc --enable-avx2 \ > +--enable-replication \ > +--enable-tools \ > +--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi --enable-vvfat --enable-qed --enable-parallels \ > +--enable-sheepdog \ > +--enable-capstone=git > + > +make -j$NUMBER_OF_PROCESSORS > +make -i -j$NUMBER_OF_PROCESSORS check This still needs the changes discussed in v1 to remove all the configure args and move the commands into the main cirrus.yml Regards, Daniel
diff --git a/.cirrus.yml b/.cirrus.yml index 3dd9fcff7f..49335e68c9 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -63,3 +63,27 @@ macos_xcode_task: --enable-werror --cc=clang || { cat config.log; exit 1; } - gmake -j$(sysctl -n hw.ncpu) - gmake check + +windows_msys2_task: + windows_container: + image: cirrusci/windowsservercore:cmake + os_version: 2019 + cpu: 8 + memory: 8G + env: + MSYS: winsymlinks:nativestrict + MSYSTEM: MINGW64 + CHERE_INVOKING: 1 + printenv_script: + - C:\tools\msys64\usr\bin\bash.exe -lc 'printenv' + install_script: + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime" + - taskkill /F /IM gpg-agent.exe + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su" + - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-install.sh" + script: + - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-build.sh" diff --git a/scripts/ci/windows/msys2-build.sh b/scripts/ci/windows/msys2-build.sh new file mode 100644 index 0000000000..d9d046b5b0 --- /dev/null +++ b/scripts/ci/windows/msys2-build.sh @@ -0,0 +1,28 @@ +mkdir build +cd build +../configure \ +--python=python3 \ +--ninja=ninja \ +--enable-stack-protector \ +--enable-guest-agent \ +--disable-pie \ +--enable-gnutls --enable-nettle \ +--enable-sdl --enable-sdl-image --enable-gtk --disable-vte --enable-curses --enable-iconv \ +--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \ +--enable-slirp=git \ +--disable-brlapi --enable-curl \ +--enable-fdt \ +--disable-kvm --enable-hax --enable-whpx \ +--enable-libnfs --enable-libusb --enable-live-block-migration --enable-usb-redir \ +--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \ +--enable-membarrier --enable-coroutine-pool \ +--enable-libssh --enable-libxml2 \ +--enable-jemalloc --enable-avx2 \ +--enable-replication \ +--enable-tools \ +--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi --enable-vvfat --enable-qed --enable-parallels \ +--enable-sheepdog \ +--enable-capstone=git + +make -j$NUMBER_OF_PROCESSORS +make -i -j$NUMBER_OF_PROCESSORS check diff --git a/scripts/ci/windows/msys2-install.sh b/scripts/ci/windows/msys2-install.sh new file mode 100644 index 0000000000..6086452399 --- /dev/null +++ b/scripts/ci/windows/msys2-install.sh @@ -0,0 +1,33 @@ +pacman --noconfirm -S --needed \ +base-devel \ +git \ +mingw-w64-x86_64-python \ +mingw-w64-x86_64-python-setuptools \ +mingw-w64-x86_64-toolchain \ +mingw-w64-x86_64-SDL2 \ +mingw-w64-x86_64-SDL2_image \ +mingw-w64-x86_64-gtk3 \ +mingw-w64-x86_64-glib2 \ +mingw-w64-x86_64-ninja \ +mingw-w64-x86_64-make \ +mingw-w64-x86_64-jemalloc \ +mingw-w64-x86_64-lzo2 \ +mingw-w64-x86_64-zstd \ +mingw-w64-x86_64-libjpeg-turbo \ +mingw-w64-x86_64-pixman \ +mingw-w64-x86_64-libgcrypt \ +mingw-w64-x86_64-capstone \ +mingw-w64-x86_64-libpng \ +mingw-w64-x86_64-libssh \ +mingw-w64-x86_64-libxml2 \ +mingw-w64-x86_64-snappy \ +mingw-w64-x86_64-libusb \ +mingw-w64-x86_64-usbredir \ +mingw-w64-x86_64-libtasn1 \ +mingw-w64-x86_64-libnfs \ +mingw-w64-x86_64-nettle \ +mingw-w64-x86_64-cyrus-sasl \ +mingw-w64-x86_64-curl \ +mingw-w64-x86_64-gnutls \ +mingw-w64-x86_64-zstd \ +
Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699 The https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 need to be updated. There is no need of --cross-prefix, open mingw64.exe instead of msys2.exe then we don't need the --cross-prefix, besides we using environment variable settings: MSYS: winsymlinks:nativestrict MSYSTEM: MINGW64 CHERE_INVOKING: 1 to opening mingw64 native shell. We now running tests with make -i check to skip tests errors. Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> --- .cirrus.yml | 24 +++++++++++++++++++++ scripts/ci/windows/msys2-build.sh | 28 ++++++++++++++++++++++++ scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 scripts/ci/windows/msys2-build.sh create mode 100644 scripts/ci/windows/msys2-install.sh