From 1773dd7a92ca417c6eb0982ff295baf074fe052d Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 13 Mar 2020 14:44:24 +0300 Subject: [PATCH 01/28] Add msys2 install script --- .../Installers/Windows2019/Install-Msys2.ps1 | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 diff --git a/images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 b/images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 new file mode 100644 index 00000000..88c6b6ef --- /dev/null +++ b/images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 @@ -0,0 +1,79 @@ +################################################################################ +## File: Install-MSYS2.ps1 +## Desc: Install MSYS2 and 64-bit gcc, cmake, & llvm (32-bit commented out) +################################################################################ + +# References +# https://github.com/msys2/MINGW-packages/blob/master/azure-pipelines.yml +# https://packages.msys2.org/group/ + +$env:orig_path = $env:PATH +$env:git_path = "C:\Program Files\Git" + +# get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/ +$msy2_uri = "https://netix.dl.sourceforge.net/project/msys2/Base/x86_64/msys2-base-x86_64-20190524.tar.xz" +$msy2_file = "C:\Windows\Temp\msys2.tar.xz" + +# Download the latest msys2 x86_64 +Write-Host "Starting msys2 download..." +(New-Object System.Net.WebClient).DownloadFile($msy2_uri, $msy2_file) +Write-Host "Finished download" + +$msy2_file_u = "/$msy2_file".replace(':', '') + +# git has tar.exe in usr/bin, but xz.exe is in mingw64/bin +$env:PATH = "$env:git_path\mingw64\bin;$env:orig_path" +$tar = "$env:git_path\usr\bin\tar.exe" + +# extract tar.xz to C:\ +Write-Host "Starting extraction..." +&$tar -Jxf $msy2_file_u -C /c/ +Remove-Item $msy2_file + +Write-Host "Finished extraction" + +$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:orig_path" + +Write-Host "bash.exe -c pacman-key --init" +bash.exe -c "pacman-key --init" + +Write-Host "bash.exe -c pacman-key --populate msys2" +bash.exe -c "pacman-key --populate msys2" + +Write-Host "pacman --noconfirm -Syyuu" +pacman.exe -Syyuu --noconfirm + +# install msys2 packages +Write-Host "Install msys2 packages" +pacman.exe -S --noconfirm --needed --noprogressbar base-devel compression + +# mingw package list +$tools = "___clang ___cmake ___llvm ___toolchain ___ragel" + +# install mingw64 packages +Write-Host "Install mingw64 packages" +$pre = "mingw-w64-x86_64-" +pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).split(' ') + +# install mingw32 packages +Write-Host "Install mingw32 packages" +$pre = "mingw-w64-i686-" +pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).split(' ') + +# clean all packages to decrease image size +Write-Host "Clean packages" +pacman.exe -Scc --noconfirm + +Write-Host +Write-Host "Installed mingw64 packages" +pacman.exe -Qs --noconfirm mingw-w64-x86_64- + +Write-Host +Write-Host "Installed mingw32 packages" +pacman.exe -Qs --noconfirm mingw-w64-i686- + +Write-Host +Write-Host "Installed msys2 packages" +pacman.exe -Qs --noconfirm + +exit 0 \ No newline at end of file From 9630ed7c1d2e4567577e1a05521a33b087b98f44 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 13 Mar 2020 14:49:04 +0300 Subject: [PATCH 02/28] Add msys2 to template --- images/win/Windows2019-Azure.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index c6df555b..fd4e2685 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -139,6 +139,12 @@ "{{ template_dir }}/scripts/Installers/Update-ImageData.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-MSYS2.ps1" + ] + }, { "type": "powershell", "scripts":[ From 25ed30427cc08f63536eb756c433e13a4d7eb505 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 13 Mar 2020 14:53:00 +0300 Subject: [PATCH 03/28] Fix filename --- images/win/Windows2019-Azure.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index fd4e2685..0f432b6c 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -142,7 +142,7 @@ { "type": "powershell", "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-MSYS2.ps1" + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" ] }, { From d4ef717e85e5df5eb099c36f1257465caea6e999 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 13 Mar 2020 14:55:39 +0300 Subject: [PATCH 04/28] Fix filename --- images/win/Windows2019-Azure.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 0f432b6c..eb574cec 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -142,7 +142,7 @@ { "type": "powershell", "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + "{{ template_dir }}/scripts/Installers/Windows2019/Install-Msys2.ps1" ] }, { From ab8fb88d957e2a2c5fcc57bed00aec2515ff4015 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 17 Mar 2020 11:07:29 +0300 Subject: [PATCH 05/28] Add validate spript --- images/win/Windows2019-Azure.json | 18 ++++-- .../{Windows2019 => }/Install-Msys2.ps1 | 27 +++++---- .../win/scripts/Installers/Validate-Msys2.ps1 | 57 +++++++++++++++++++ 3 files changed, 84 insertions(+), 18 deletions(-) rename images/win/scripts/Installers/{Windows2019 => }/Install-Msys2.ps1 (78%) create mode 100644 images/win/scripts/Installers/Validate-Msys2.ps1 diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index eb574cec..a8623ef2 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -139,12 +139,6 @@ "{{ template_dir }}/scripts/Installers/Update-ImageData.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Windows2019/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -470,6 +464,12 @@ "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -604,6 +604,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AzureDevOpsCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Msys2.ps1" + ] + }, { "type": "powershell", "environment_vars":[ diff --git a/images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 similarity index 78% rename from images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 rename to images/win/scripts/Installers/Install-Msys2.ps1 index 88c6b6ef..73d7b81d 100644 --- a/images/win/scripts/Installers/Windows2019/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -11,11 +11,11 @@ $env:orig_path = $env:PATH $env:git_path = "C:\Program Files\Git" # get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/ -$msy2_uri = "https://netix.dl.sourceforge.net/project/msys2/Base/x86_64/msys2-base-x86_64-20190524.tar.xz" +$msy2_uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" $msy2_file = "C:\Windows\Temp\msys2.tar.xz" # Download the latest msys2 x86_64 -Write-Host "Starting msys2 download..." +Write-Host "Starting download" (New-Object System.Net.WebClient).DownloadFile($msy2_uri, $msy2_file) Write-Host "Finished download" @@ -26,22 +26,26 @@ $env:PATH = "$env:git_path\mingw64\bin;$env:orig_path" $tar = "$env:git_path\usr\bin\tar.exe" # extract tar.xz to C:\ -Write-Host "Starting extraction..." +Write-Host "Starting extraction" &$tar -Jxf $msy2_file_u -C /c/ Remove-Item $msy2_file -Write-Host "Finished extraction" +Write-Host Finished extraction $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:orig_path" -Write-Host "bash.exe -c pacman-key --init" -bash.exe -c "pacman-key --init" +$ErrorActionPreference = "Continue" -Write-Host "bash.exe -c pacman-key --populate msys2" -bash.exe -c "pacman-key --populate msys2" +Write-Host "sh -c pacman-key --init" +Invoke-Expression "bash -c `"pacman-key --init 2>&1`"" + + +Write-Host "sh.exe -c pacman-key --populate msys2" +Invoke-Expression "sh -c `"pacman-key --populate msys2 2>&1`"" Write-Host "pacman --noconfirm -Syyuu" -pacman.exe -Syyuu --noconfirm +pacman.exe -Syyuu --noconfirm 2>$null +pacman.exe -Syuu --noconfirm 2>$null # install msys2 packages Write-Host "Install msys2 packages" @@ -64,16 +68,15 @@ pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).s Write-Host "Clean packages" pacman.exe -Scc --noconfirm -Write-Host Write-Host "Installed mingw64 packages" pacman.exe -Qs --noconfirm mingw-w64-x86_64- -Write-Host Write-Host "Installed mingw32 packages" pacman.exe -Qs --noconfirm mingw-w64-i686- -Write-Host Write-Host "Installed msys2 packages" pacman.exe -Qs --noconfirm +Write-Host "MSYS2 installation completed" + exit 0 \ No newline at end of file diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 new file mode 100644 index 00000000..9b0492a3 --- /dev/null +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -0,0 +1,57 @@ +################################################################################ +## File: Validate-MSYS2.ps1 +## Desc: Validate MSYS2 +################################################################################ + +if (Get-Command -Name 'gcc') +{ + Write-Host "gcc is successfully installed:" + gcc --version | Write-Host +} +else +{ + Write-Host "gcc is not on PATH" + exit 1 +} + +if (Get-Command -Name 'g++') +{ + Write-Host "g++ is successfully installed:" + g++ --version | Write-Host +} +else +{ + Write-Host "g++ is not on PATH" + exit 1 +} + +if (Get-Command -Name 'make') +{ + Write-Host "make is successfully installed:" + make --version | Write-Host +} +else +{ + Write-Host "make is not on PATH" + exit 1 +} + +Adding description of the software to Markdown + +`gcc --version` gives output like: +gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0 +Copyright (C) 2015 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +$SoftwareName = "MinGW" +$(gcc --version).Split([System.Environment]::NewLine)[0] -match "\d\.\d\.\d$" +$minGwVersion = $matches[0] + +$Description = @" +_Version:_ $minGwVersion
+_Environment:_ +* PATH: contains location of the MinGW 'bin' directory +"@ + +Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From 8583664d46e0b4726bf407f8416efd33c967db9b Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 17 Mar 2020 21:07:56 +0300 Subject: [PATCH 06/28] Test elevated user --- images/win/Windows2019-Azure.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index a8623ef2..f8ebb4bc 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -478,6 +478,8 @@ }, { "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", "scripts":[ "{{ template_dir }}/scripts/Installers/Install-TypeScript.ps1" ] From 0b0f21043e6da2b4ee0145be9bcd65f67d987a8d Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 18 Mar 2020 09:16:21 +0300 Subject: [PATCH 07/28] Test elevated user --- images/win/Windows2019-Azure.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index f8ebb4bc..eba725ee 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -151,6 +151,14 @@ "{{ template_dir }}/scripts/Installers/Install-PowershellCore.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "windows-restart", "restart_timeout": "10m" @@ -464,12 +472,6 @@ "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -478,8 +480,6 @@ }, { "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", "scripts":[ "{{ template_dir }}/scripts/Installers/Install-TypeScript.ps1" ] From e68c39c1bd64ce38333b68a389bcbb6d5834757e Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 18 Mar 2020 09:26:14 +0300 Subject: [PATCH 08/28] Test --- images/win/Windows2019-Azure.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index eba725ee..c32d8bb7 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -102,6 +102,14 @@ "{{ template_dir }}/scripts/Installers/Windows2019/Initialize-VM.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -151,14 +159,6 @@ "{{ template_dir }}/scripts/Installers/Install-PowershellCore.ps1" ] }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "windows-restart", "restart_timeout": "10m" From 7339af8a51262b2ba747cecc84225a3dc9f17731 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 18 Mar 2020 10:19:10 +0300 Subject: [PATCH 09/28] Test --- images/win/Windows2019-Azure.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index c32d8bb7..e51a7281 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -102,6 +102,12 @@ "{{ template_dir }}/scripts/Installers/Windows2019/Initialize-VM.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Git.ps1" + ] + }, { "type": "powershell", "elevated_user": "SYSTEM", @@ -312,12 +318,6 @@ "{{ template_dir }}/scripts/Installers/Install-Perl.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Git.ps1" - ] - }, { "type": "powershell", "environment_vars": [ From e269c20b6a8968cfaf995e774e70a48f96a4ac52 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 18 Mar 2020 12:02:58 +0300 Subject: [PATCH 10/28] Test --- images/win/Windows2019-Azure.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index e51a7281..07674aaa 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -102,20 +102,6 @@ "{{ template_dir }}/scripts/Installers/Windows2019/Initialize-VM.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Git.ps1" - ] - }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -318,6 +304,12 @@ "{{ template_dir }}/scripts/Installers/Install-Perl.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Git.ps1" + ] + }, { "type": "powershell", "environment_vars": [ @@ -472,6 +464,14 @@ "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ From 3f05ba0dba6724d6c84eec579d9c10b58212a217 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Thu, 19 Mar 2020 09:24:11 +0300 Subject: [PATCH 11/28] Add msys2 to windows-2016 --- images/win/Windows2016-Azure.json | 14 ++++++++++++++ images/win/scripts/Installers/Install-Msys2.ps1 | 14 ++++++-------- images/win/scripts/Installers/Validate-Msys2.ps1 | 10 +++++----- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 94f200b0..df3aa473 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -483,6 +483,14 @@ "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -611,6 +619,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AzureDevOpsCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Msys2.ps1" + ] + }, { "type": "powershell", "environment_vars":[ diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 73d7b81d..62195aaa 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -15,7 +15,7 @@ $msy2_uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.ta $msy2_file = "C:\Windows\Temp\msys2.tar.xz" # Download the latest msys2 x86_64 -Write-Host "Starting download" +Write-Host "Starting msys2 download" (New-Object System.Net.WebClient).DownloadFile($msy2_uri, $msy2_file) Write-Host "Finished download" @@ -26,22 +26,20 @@ $env:PATH = "$env:git_path\mingw64\bin;$env:orig_path" $tar = "$env:git_path\usr\bin\tar.exe" # extract tar.xz to C:\ -Write-Host "Starting extraction" +Write-Host "Starting msys2 extraction" &$tar -Jxf $msy2_file_u -C /c/ Remove-Item $msy2_file - -Write-Host Finished extraction +Write-Host "Finished extraction" $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:orig_path" $ErrorActionPreference = "Continue" -Write-Host "sh -c pacman-key --init" +Write-Host "bash -c pacman-key --init" Invoke-Expression "bash -c `"pacman-key --init 2>&1`"" - -Write-Host "sh.exe -c pacman-key --populate msys2" -Invoke-Expression "sh -c `"pacman-key --populate msys2 2>&1`"" +Write-Host "bash -c pacman-key --populate msys2" +Invoke-Expression "bash -c `"pacman-key --populate msys2 2>&1`"" Write-Host "pacman --noconfirm -Syyuu" pacman.exe -Syyuu --noconfirm 2>$null diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 9b0492a3..31c8ea88 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -38,11 +38,11 @@ else Adding description of the software to Markdown -`gcc --version` gives output like: -gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0 -Copyright (C) 2015 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# `gcc --version` gives output like: +# gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0 +# Copyright (C) 2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $SoftwareName = "MinGW" $(gcc --version).Split([System.Environment]::NewLine)[0] -match "\d\.\d\.\d$" From 07b107e7343312538a4577fdeb97a07168c30d96 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Thu, 19 Mar 2020 09:25:53 +0300 Subject: [PATCH 12/28] Minor fix --- images/win/scripts/Installers/Install-Msys2.ps1 | 4 ++-- images/win/scripts/Installers/Validate-Msys2.ps1 | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 62195aaa..5f7ec137 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -1,6 +1,6 @@ ################################################################################ -## File: Install-MSYS2.ps1 -## Desc: Install MSYS2 and 64-bit gcc, cmake, & llvm (32-bit commented out) +## File: Install-Msys2.ps1 +## Desc: Install Msys2 and 64-bit gcc, cmake, & llvm (32-bit commented out) ################################################################################ # References diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 31c8ea88..3554b603 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -1,6 +1,6 @@ ################################################################################ -## File: Validate-MSYS2.ps1 -## Desc: Validate MSYS2 +## File: Validate-Msys2.ps1 +## Desc: Validate Msys2 ################################################################################ if (Get-Command -Name 'gcc') @@ -36,7 +36,7 @@ else exit 1 } -Adding description of the software to Markdown +# Adding description of the software to Markdown # `gcc --version` gives output like: # gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0 From 326bf84da439768c3c7a14309e584e8a1818a38c Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 20 Mar 2020 09:56:20 +0300 Subject: [PATCH 13/28] Fix var names --- .../win/scripts/Installers/Install-Msys2.ps1 | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 5f7ec137..312a9d02 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -7,31 +7,31 @@ # https://github.com/msys2/MINGW-packages/blob/master/azure-pipelines.yml # https://packages.msys2.org/group/ -$env:orig_path = $env:PATH -$env:git_path = "C:\Program Files\Git" +$env:origPath = $env:PATH +$env:gitPath = "C:\Program Files\Git" # get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/ -$msy2_uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" -$msy2_file = "C:\Windows\Temp\msys2.tar.xz" +$msys2Uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" +$msys2File = "C:\Windows\Temp\msys2.tar.xz" # Download the latest msys2 x86_64 Write-Host "Starting msys2 download" -(New-Object System.Net.WebClient).DownloadFile($msy2_uri, $msy2_file) +(New-Object System.Net.WebClient).DownloadFile($msys2Uri, $msys2File) Write-Host "Finished download" -$msy2_file_u = "/$msy2_file".replace(':', '') +$msys2FileU = "/$msys2File".replace(':', '') # git has tar.exe in usr/bin, but xz.exe is in mingw64/bin -$env:PATH = "$env:git_path\mingw64\bin;$env:orig_path" -$tar = "$env:git_path\usr\bin\tar.exe" +$env:PATH = "$env:gitPath\mingw64\bin;$env:origPath" +$tar = "$env:gitPath\usr\bin\tar.exe" # extract tar.xz to C:\ Write-Host "Starting msys2 extraction" -&$tar -Jxf $msy2_file_u -C /c/ -Remove-Item $msy2_file +&$tar -Jxf $msys2FileU -C /c/ +Remove-Item $msys2File Write-Host "Finished extraction" -$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:orig_path" +$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:origPath" $ErrorActionPreference = "Continue" From 3fdcbbd94f438643271d2948713b9f3cd8766ab3 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 20 Mar 2020 09:58:12 +0300 Subject: [PATCH 14/28] Fix gcc version parsing --- images/win/scripts/Installers/Validate-Msys2.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 3554b603..187e219d 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -45,7 +45,7 @@ else # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $SoftwareName = "MinGW" -$(gcc --version).Split([System.Environment]::NewLine)[0] -match "\d\.\d\.\d$" +$(gcc --version).Split([System.Environment]::NewLine)[0] -match "\d+\.\d+\.\d+$" $minGwVersion = $matches[0] $Description = @" From 58591f939b998e2ab0ebbca0c2f486e95f9647cc Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 20 Mar 2020 12:47:52 +0300 Subject: [PATCH 15/28] Remove redirect stderr to stdout --- .../win/scripts/Installers/Install-Msys2.ps1 | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 312a9d02..197461c6 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -7,12 +7,12 @@ # https://github.com/msys2/MINGW-packages/blob/master/azure-pipelines.yml # https://packages.msys2.org/group/ -$env:origPath = $env:PATH -$env:gitPath = "C:\Program Files\Git" +$origPath = $env:PATH +$gitPath = "C:\Program Files\Git" # get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/ $msys2Uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" -$msys2File = "C:\Windows\Temp\msys2.tar.xz" +$msys2File = "$env:TEMP\msys2.tar.xz" # Download the latest msys2 x86_64 Write-Host "Starting msys2 download" @@ -22,8 +22,8 @@ Write-Host "Finished download" $msys2FileU = "/$msys2File".replace(':', '') # git has tar.exe in usr/bin, but xz.exe is in mingw64/bin -$env:PATH = "$env:gitPath\mingw64\bin;$env:origPath" -$tar = "$env:gitPath\usr\bin\tar.exe" +$env:PATH = "$gitPath\mingw64\bin;$origPath" +$tar = "$gitPath\usr\bin\tar.exe" # extract tar.xz to C:\ Write-Host "Starting msys2 extraction" @@ -31,21 +31,20 @@ Write-Host "Starting msys2 extraction" Remove-Item $msys2File Write-Host "Finished extraction" -$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:origPath" +$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" $ErrorActionPreference = "Continue" Write-Host "bash -c pacman-key --init" -Invoke-Expression "bash -c `"pacman-key --init 2>&1`"" +Invoke-Expression "bash -c `"pacman-key --init`"" Write-Host "bash -c pacman-key --populate msys2" -Invoke-Expression "bash -c `"pacman-key --populate msys2 2>&1`"" +Invoke-Expression "bash -c `"pacman-key --populate msys2`"" Write-Host "pacman --noconfirm -Syyuu" -pacman.exe -Syyuu --noconfirm 2>$null -pacman.exe -Syuu --noconfirm 2>$null +pacman.exe -Syyuu --noconfirm +pacman.exe -Syuu --noconfirm -# install msys2 packages Write-Host "Install msys2 packages" pacman.exe -S --noconfirm --needed --noprogressbar base-devel compression From 5f459a3e58642bc8b2258524d7e83adc4e38b35b Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 20 Mar 2020 14:48:49 +0300 Subject: [PATCH 16/28] Remove errors ignore command --- images/win/scripts/Installers/Install-Msys2.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 197461c6..67f43f9c 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -31,10 +31,9 @@ Write-Host "Starting msys2 extraction" Remove-Item $msys2File Write-Host "Finished extraction" +# Add msys2 bin tools folders to PATH $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" -$ErrorActionPreference = "Continue" - Write-Host "bash -c pacman-key --init" Invoke-Expression "bash -c `"pacman-key --init`"" From 7720b74a0096c1cfc9d646b66b05886e77bb7963 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 20 Mar 2020 15:43:25 +0300 Subject: [PATCH 17/28] Minor fix --- images/win/scripts/Installers/Install-Msys2.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 67f43f9c..9656ecc0 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -35,10 +35,10 @@ Write-Host "Finished extraction" $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" Write-Host "bash -c pacman-key --init" -Invoke-Expression "bash -c `"pacman-key --init`"" +bash.exe "pacman-key --init 2>&1" Write-Host "bash -c pacman-key --populate msys2" -Invoke-Expression "bash -c `"pacman-key --populate msys2`"" +bash.exe "pacman-key --populate msys2 2>&1" Write-Host "pacman --noconfirm -Syyuu" pacman.exe -Syyuu --noconfirm From 418d16888fca4934d89e9a9aaf33d551f16f70e7 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 20 Mar 2020 16:10:58 +0300 Subject: [PATCH 18/28] Minor fix --- images/win/scripts/Installers/Install-Msys2.ps1 | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 9656ecc0..4fe380cf 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -21,9 +21,7 @@ Write-Host "Finished download" $msys2FileU = "/$msys2File".replace(':', '') -# git has tar.exe in usr/bin, but xz.exe is in mingw64/bin -$env:PATH = "$gitPath\mingw64\bin;$origPath" -$tar = "$gitPath\usr\bin\tar.exe" +$tar = "$gitPath\usr\bin\tar.exe" # extract tar.xz to C:\ Write-Host "Starting msys2 extraction" @@ -34,10 +32,10 @@ Write-Host "Finished extraction" # Add msys2 bin tools folders to PATH $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" -Write-Host "bash -c pacman-key --init" +Write-Host "bash pacman-key --init" bash.exe "pacman-key --init 2>&1" -Write-Host "bash -c pacman-key --populate msys2" +Write-Host "bash pacman-key --populate msys2" bash.exe "pacman-key --populate msys2 2>&1" Write-Host "pacman --noconfirm -Syyuu" From de434649ee6484793fb17bd3d9dafb85d7d85540 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Mon, 23 Mar 2020 09:15:33 +0300 Subject: [PATCH 19/28] Minor fix --- images/win/scripts/Installers/Install-Msys2.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 4fe380cf..9f57ea23 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -33,10 +33,10 @@ Write-Host "Finished extraction" $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" Write-Host "bash pacman-key --init" -bash.exe "pacman-key --init 2>&1" +bash.exe -c "pacman-key --init 2>&1" Write-Host "bash pacman-key --populate msys2" -bash.exe "pacman-key --populate msys2 2>&1" +bash.exe -c "pacman-key --populate msys2 2>&1" Write-Host "pacman --noconfirm -Syyuu" pacman.exe -Syyuu --noconfirm From 303d675ea24506f6dddd388565b48c7f5d5a9801 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 14:29:50 +0300 Subject: [PATCH 20/28] Reworked validation --- .../win/scripts/Installers/Validate-Msys2.ps1 | 75 ++++++++----------- 1 file changed, 32 insertions(+), 43 deletions(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 187e219d..b8eac3aa 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -3,55 +3,44 @@ ## Desc: Validate Msys2 ################################################################################ -if (Get-Command -Name 'gcc') -{ - Write-Host "gcc is successfully installed:" - gcc --version | Write-Host -} -else -{ - Write-Host "gcc is not on PATH" - exit 1 +$msys2BinDir = "C:\msys64\usr\bin" +$msys2mingwDir = "C:\msys64\mingw64\bin" + +$installedTools = @( + "bash", + "tar", + "make" +) + +Write-Host "Check installed tools in msys2/usr/bin directory" +$installedTools | ForEach-Object { + $toolName = $_ + try { + Invoke-Expression "$msys2BinDir\$_ --version" + } catch { + Write-Host "$toolName was not installed in MSYS2 bin directory" + Write-Error $_ + exit 1 + } } -if (Get-Command -Name 'g++') -{ - Write-Host "g++ is successfully installed:" - g++ --version | Write-Host -} -else -{ - Write-Host "g++ is not on PATH" - exit 1 -} - -if (Get-Command -Name 'make') -{ - Write-Host "make is successfully installed:" - make --version | Write-Host -} -else -{ - Write-Host "make is not on PATH" +Write-Host "Check gcc in msys2/mingw64/bin directory" +try { + Invoke-Expression "$msys2mingwDir\gcc --version" +} catch { + Write-Host "gcc was not installed in MSYS2 bin directory" + Write-Error $_ exit 1 } # Adding description of the software to Markdown -# `gcc --version` gives output like: -# gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0 -# Copyright (C) 2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# $SoftwareName = "MSYS2" +# $(pacman.exe --version).Split([System.Environment]::NewLine)[1] -match "v\d+\.\d+\.\d+" +# $pacmanVersion = $matches[0] -$SoftwareName = "MinGW" -$(gcc --version).Split([System.Environment]::NewLine)[0] -match "\d+\.\d+\.\d+$" -$minGwVersion = $matches[0] +# $Description = @" +# _Pacman version:_ $pacmanVersion
+# "@ -$Description = @" -_Version:_ $minGwVersion
-_Environment:_ -* PATH: contains location of the MinGW 'bin' directory -"@ - -Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description +# Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From 4f00d9bbfc2f63f74ef675988541e37e3a5503a9 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 17:11:27 +0300 Subject: [PATCH 21/28] Add tool versions to description --- .../win/scripts/Installers/Validate-Msys2.ps1 | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index b8eac3aa..7bed9c9f 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -35,12 +35,33 @@ try { # Adding description of the software to Markdown -# $SoftwareName = "MSYS2" -# $(pacman.exe --version).Split([System.Environment]::NewLine)[1] -match "v\d+\.\d+\.\d+" -# $pacmanVersion = $matches[0] +function Get-ToolVersion { + param( + [string] $ToolPath, + [int] $VersionLineNumber + ) -# $Description = @" -# _Pacman version:_ $pacmanVersion
-# "@ + $toolRawVersion = Invoke-Expression "$ToolPath --version" + $toolRawVersion.Split([System.Environment]::NewLine)[$VersionLineNumber] -match "\d+\.\d+(\.\d+)?" + $toolVersion = $matches[0] + return $toolVersion +} -# Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description +$SoftwareName = "MSYS2" +$pacmanVersion = Get-ToolVersion -ToolPath "$msys2BinDir/pacman" -VersionLineNumber 1 +$bashVersion = Get-ToolVersion -ToolPath "$msys2BinDir/bash" -VersionLineNumber 0 +$gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -LineNumber 0 +$tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -LineNumber 0 +$makeVersion = Get-ToolVersion -ToolPath "$msys2BinDir/make" -LineNumber 0 +$cmakeVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/cmake" -LineNumber 0 + +$Description = @" +_Pacman version:_ $pacmanVersion
+_Bash:_ $bashVersion
+_gcc:_ $gccVersion
+_tar:_ $tarVersion
+_make:_ $makeVersion
+_cmake:_ $cmakeVersion
+"@ + +Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From a9c63356630063124b1d258b62732715d754bed4 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 17:12:57 +0300 Subject: [PATCH 22/28] Minor fix --- images/win/scripts/Installers/Validate-Msys2.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 7bed9c9f..0e7805d2 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -56,7 +56,8 @@ $makeVersion = Get-ToolVersion -ToolPath "$msys2BinDir/make" -LineNumber 0 $cmakeVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/cmake" -LineNumber 0 $Description = @" -_Pacman version:_ $pacmanVersion
+_Tool versions_ +_Pacman:_ $pacmanVersion
_Bash:_ $bashVersion
_gcc:_ $gccVersion
_tar:_ $tarVersion
From 53536cea29fffcb94ead6b7ad36185c610c28cf7 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 17:44:12 +0300 Subject: [PATCH 23/28] Add cmake check --- images/win/scripts/Installers/Validate-Msys2.ps1 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 0e7805d2..8358df53 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -33,6 +33,15 @@ try { exit 1 } +Write-Host "Check cmake in msys2/mingw64/bin directory" +try { + Invoke-Expression "$msys2mingwDir\cmake --version" +} catch { + Write-Host "cmake was not installed in MSYS2 bin directory" + Write-Error $_ + exit 1 +} + # Adding description of the software to Markdown function Get-ToolVersion { From e80bf9eefe1f4ab8d1e7effacf95db280726f0ab Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 17:47:56 +0300 Subject: [PATCH 24/28] Minor fix --- images/win/scripts/Installers/Install-Msys2.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 9f57ea23..90e548b4 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -29,7 +29,7 @@ Write-Host "Starting msys2 extraction" Remove-Item $msys2File Write-Host "Finished extraction" -# Add msys2 bin tools folders to PATH +# Add msys2 bin tools folders to PATH temporary $env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" Write-Host "bash pacman-key --init" From 9f55156c04594bcc4ce4ef20d05fa2190e2cbf60 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 17:50:30 +0300 Subject: [PATCH 25/28] Fix typo --- images/win/scripts/Installers/Validate-Msys2.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index 8358df53..a6ec122e 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -59,10 +59,10 @@ function Get-ToolVersion { $SoftwareName = "MSYS2" $pacmanVersion = Get-ToolVersion -ToolPath "$msys2BinDir/pacman" -VersionLineNumber 1 $bashVersion = Get-ToolVersion -ToolPath "$msys2BinDir/bash" -VersionLineNumber 0 -$gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -LineNumber 0 -$tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -LineNumber 0 -$makeVersion = Get-ToolVersion -ToolPath "$msys2BinDir/make" -LineNumber 0 -$cmakeVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/cmake" -LineNumber 0 +$gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -VersionLineNumber 0 +$tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -VersionLineNumber 0 +$makeVersion = Get-ToolVersion -ToolPath "$msys2BinDir/make" -VersionLineNumber 0 +$cmakeVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/cmake" -VersionLineNumber 0 $Description = @" _Tool versions_ From 9e12e181a3322cbef9b0e7d2da5caddbda0e9985 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 24 Mar 2020 18:49:57 +0300 Subject: [PATCH 26/28] Reworked validation --- .../win/scripts/Installers/Validate-Msys2.ps1 | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index a6ec122e..b249decb 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -12,6 +12,11 @@ $installedTools = @( "make" ) +$installedMinGWTools = @( + "gcc", + "cmake" +) + Write-Host "Check installed tools in msys2/usr/bin directory" $installedTools | ForEach-Object { $toolName = $_ @@ -24,22 +29,16 @@ $installedTools | ForEach-Object { } } -Write-Host "Check gcc in msys2/mingw64/bin directory" -try { - Invoke-Expression "$msys2mingwDir\gcc --version" -} catch { - Write-Host "gcc was not installed in MSYS2 bin directory" - Write-Error $_ - exit 1 -} - -Write-Host "Check cmake in msys2/mingw64/bin directory" -try { - Invoke-Expression "$msys2mingwDir\cmake --version" -} catch { - Write-Host "cmake was not installed in MSYS2 bin directory" - Write-Error $_ - exit 1 +Write-Host "Check installed tools in msys2/mingw/bin directory" +$installedMinGWTools | ForEach-Object { + $toolName = $_ + try { + Invoke-Expression "$msys2mingwDir\$_ --version" + } catch { + Write-Error "$toolName was not installed in MSYS2 mingw bin directory" + Write-Error $_ + exit 1 + } } # Adding description of the software to Markdown @@ -61,17 +60,14 @@ $pacmanVersion = Get-ToolVersion -ToolPath "$msys2BinDir/pacman" -VersionLineNum $bashVersion = Get-ToolVersion -ToolPath "$msys2BinDir/bash" -VersionLineNumber 0 $gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -VersionLineNumber 0 $tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -VersionLineNumber 0 -$makeVersion = Get-ToolVersion -ToolPath "$msys2BinDir/make" -VersionLineNumber 0 -$cmakeVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/cmake" -VersionLineNumber 0 $Description = @" _Tool versions_ -_Pacman:_ $pacmanVersion
-_Bash:_ $bashVersion
+_pacman:_ $pacmanVersion
+_bash:_ $bashVersion
_gcc:_ $gccVersion
_tar:_ $tarVersion
-_make:_ $makeVersion
-_cmake:_ $cmakeVersion
+MSYS2 location: C:\msys64 "@ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From b0a54cf66472bd79af353f99ee05d58487adecf1 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 25 Mar 2020 09:38:59 +0300 Subject: [PATCH 27/28] Minor change --- images/win/scripts/Installers/Install-Msys2.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 90e548b4..49f75e43 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -8,7 +8,7 @@ # https://packages.msys2.org/group/ $origPath = $env:PATH -$gitPath = "C:\Program Files\Git" +$gitPath = "$env:ProgramFiles\Git" # get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/ $msys2Uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" From 89c2c31767be65bfa97d6923ff38523b6e652c69 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 25 Mar 2020 19:04:11 +0300 Subject: [PATCH 28/28] Minor fix --- images/win/scripts/Installers/Validate-Msys2.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 index b249decb..e7d2142a 100644 --- a/images/win/scripts/Installers/Validate-Msys2.ps1 +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -50,7 +50,7 @@ function Get-ToolVersion { ) $toolRawVersion = Invoke-Expression "$ToolPath --version" - $toolRawVersion.Split([System.Environment]::NewLine)[$VersionLineNumber] -match "\d+\.\d+(\.\d+)?" + $toolRawVersion.Split([System.Environment]::NewLine)[$VersionLineNumber] -match "\d+\.\d+(\.\d+)?" | Out-Null $toolVersion = $matches[0] return $toolVersion }