diff --git a/contrib/win32/openssh/GetLibreSSL.ps1 b/contrib/win32/openssh/GetLibreSSL.ps1
index 8a51a575a..35dfaa784 100644
--- a/contrib/win32/openssh/GetLibreSSL.ps1
+++ b/contrib/win32/openssh/GetLibreSSL.ps1
@@ -1,15 +1,15 @@
-param (
- [string]$sourceUrl = "https://github.com/PowerShell/libressl/releases/latest/",
- [string]$zipDir,
- [string]$destDir,
- [switch]$override
- )
+param (
+ [string] $paths_target_file_path,
+ [string] $destDir,
+ [switch] $override
+)
-If ($PSVersiontable.PSVersion.Major -le 2) {$PSScriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Path}
# Workaround that $PSScriptRoot is not support on ps version 2
-if([string]::IsNullOrEmpty($zipDir))
+If ($PSVersiontable.PSVersion.Major -le 2) {$PSScriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Path}
+
+if([string]::IsNullOrEmpty($paths_target_file_path))
{
- $zipDir = $PSScriptRoot
+ $paths_target_file_path = Join-Path $PSScriptRoot "paths.targets"
}
if([string]::IsNullOrEmpty($destDir))
@@ -26,30 +26,36 @@ elseif (Test-Path (Join-Path $destDir "LibreSSL") -PathType Container)
return
}
+[xml] $buildConfig = Get-Content $paths_target_file_path
+$version = "V" + $buildConfig.Project.PropertyGroup.LibreSSLVersion
+
+Write-Host "Downloading LibreSSL version:$version"
+Write-Host "paths_target_file_path:$paths_target_file_path"
+Write-Host "destDir:$destDir"
+Write-Host "override:$override"
+
+$zip_path = Join-Path $PSScriptRoot "LibreSSL.zip"
+
+$release_url = "https://github.com/PowerShell/LibreSSL/releases/download/$version/LibreSSL.zip"
+Write-Host "release_url:$release_url"
+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor `
[Net.SecurityProtocolType]::Tls11 -bor `
[Net.SecurityProtocolType]::Tls
-
- $request = [System.Net.WebRequest]::Create($sourceUrl)
- $request.AllowAutoRedirect = $false
- $request.Timeout = 60000; # 1 mins for the download to complete
- $response = $request.GetResponse()
- $release_url = $([String]$response.GetResponseHeader("Location")).Replace('tag','download') + '/LibreSSL.zip'
- $zip_path = Join-Path $zipDir "libressl.zip"
- # Download libressl latest release binaries
- Remove-Item $zip_path -Force -ErrorAction SilentlyContinue
- (New-Object System.Net.WebClient).DownloadFile($release_url, $zip_path)
- if(-not (Test-Path $zip_path))
- {
- throw "failed to download ssl zip file"
- }
-
- # Expand the zip file
- Expand-Archive -Path $zip_path -DestinationPath $destDir -Force -ErrorAction SilentlyContinue -ErrorVariable e
- if($e -ne $null)
- {
- throw "Error when expand zip file"
- }
-
- Remove-Item $zip_path -Force -ErrorAction SilentlyContinue
\ No newline at end of file
+Remove-Item $zip_path -Force -ErrorAction SilentlyContinue
+Invoke-WebRequest -Uri $release_url -OutFile $zip_path -UseBasicParsing
+if(-not (Test-Path $zip_path))
+{
+ throw "failed to download LibreSSL version:$version"
+}
+
+Expand-Archive -Path $zip_path -DestinationPath $destDir -Force -ErrorAction SilentlyContinue -ErrorVariable e
+if($e -ne $null)
+{
+ throw "Error when expand zip file. LibreSSL version:$version"
+}
+
+Remove-Item $zip_path -Force -ErrorAction SilentlyContinue
+
+Write-Host "Succesfully downloaded LibreSSL version:$version"
diff --git a/contrib/win32/openssh/OpenSSHBuildHelper.psm1 b/contrib/win32/openssh/OpenSSHBuildHelper.psm1
index e4d026480..d442546b1 100644
--- a/contrib/win32/openssh/OpenSSHBuildHelper.psm1
+++ b/contrib/win32/openssh/OpenSSHBuildHelper.psm1
@@ -292,39 +292,6 @@ function Start-OpenSSHBootstrap
}
}
-function Copy-LibreSSLSDK
-{
- [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor `
- [Net.SecurityProtocolType]::Tls11 -bor `
- [Net.SecurityProtocolType]::Tls
-
- $url = 'https://github.com/PowerShell/libressl/releases/latest/'
- $request = [System.Net.WebRequest]::Create($url)
- $request.AllowAutoRedirect = $false
- $request.Timeout = 30000; #30 sec
- $response=$request.GetResponse()
- $libressl_release_url=$([String]$response.GetResponseHeader("Location")).Replace('tag','download') + '/LibreSSL.zip'
- $libressl_zip_path=Join-Path $script:gitRoot "libressl.zip"
-
- #download libressl latest release binaries
- Remove-Item $libressl_zip_path -Force -ErrorAction SilentlyContinue
- (New-Object System.Net.WebClient).DownloadFile($libressl_release_url, $libressl_zip_path)
- if(-not (Test-Path $libressl_zip_path))
- {
- Write-BuildMsg -AsError -ErrorAction Stop -Message "Unable to download $libressl_release_url to $libressl_zip_path."
- }
-
- #copy libressl
- $openssh_libressl_path=Join-Path $script:OpenSSHRoot "contrib\win32\openssh"
- Expand-Archive -Path $libressl_zip_path -DestinationPath $openssh_libressl_path -Force -ErrorAction SilentlyContinue -ErrorVariable e
- if($e -ne $null)
- {
- Write-BuildMsg -AsError -ErrorAction Stop -Message "Unable to extract LibreSSL from $libressl_zip_path to $openssh_libressl_path failed."
- }
-
- Remove-Item $libressl_zip_path -Force -ErrorAction SilentlyContinue
-}
-
function Start-OpenSSHPackage
{
[CmdletBinding(SupportsShouldProcess=$false)]
@@ -545,14 +512,6 @@ function Start-OpenSSHBuild
Start-OpenSSHBootstrap -OneCore:$OneCore
- # Download the LibreSSL
- if (-not (Test-Path (Join-Path $PSScriptRoot "LibreSSL")))
- {
- Write-BuildMsg -AsInfo -Message "Download, Copy LibreSSL"
- Copy-LibreSSLSDK
- Write-BuildMsg -AsInfo -Message "LibreSSL copied successfully"
- }
-
$PathTargets = Join-Path $PSScriptRoot paths.targets
if ($NoOpenSSL)
{
@@ -624,7 +583,7 @@ function Start-OpenSSHBuild
if ($errorCode -ne 0)
{
- Write-BuildMsg -AsError -ErrorAction Stop -Message "Build failed for OpenSSH.`nExitCode: $error."
+ Write-BuildMsg -AsError -ErrorAction Stop -Message "Build failed for OpenSSH.`nExitCode: $errorCode."
}
Write-BuildMsg -AsInfo -Message "SSH build successful."
diff --git a/contrib/win32/openssh/paths.targets b/contrib/win32/openssh/paths.targets
index 865b67500..4801e1c5f 100644
--- a/contrib/win32/openssh/paths.targets
+++ b/contrib/win32/openssh/paths.targets
@@ -4,6 +4,7 @@
$(SolutionDir)..\..\..\
$(SolutionDir)..\..\..\bin\
$(SolutionDir)lib\
+ 2.6.5.1
2.1.11
$(SolutionDir)\LibreSSL\sdk\
$(SolutionDir)\LibreSSL\bin\desktop\x86\