Fix OS X OpenSSL link for .NET Core

Due to https://github.com/Homebrew/brew/pull/597,
.NET Core's installation instructions of `brew link --force openssl` are
now invalid (for good reasons, due to security holes). Until .NET Core
updates their libraries to find the OpenSSL libraries correctly, we can
update them as part of `Start-PSBootstrap`.

See https://github.com/dotnet/cli/issues/3964
This commit is contained in:
Andrew Schwartzmeyer
2016-08-04 11:21:48 -07:00
parent 5800b86a23
commit 39faa3dd25
+14 -2
View File
@@ -213,6 +213,13 @@ function Start-PSBuild {
$RestoreArguments += "$PSScriptRoot"
Start-NativeExecution { dotnet restore $RestoreArguments }
# .NET Core's crypto library needs brew's OpenSSL libraries added to its rpath
if ($IsOSX) {
# This is the restored library used to build
# This is allowed to fail since the user may have already restored
find $env:HOME/.nuget -name System.Security.Cryptography.Native.dylib | xargs sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib
}
}
# handle ResGen
@@ -630,8 +637,6 @@ function Start-PSBootstrap {
if ($Package) { $Deps += "ruby" }
# Install dependencies
brew install $Deps
# OpenSSL libraries must be updated
brew link --force openssl
}
# Install [fpm](https://github.com/jordansissel/fpm)
@@ -663,6 +668,13 @@ function Start-PSBootstrap {
curl -s $obtainUrl/$installScript -o $installScript
chmod +x $installScript
bash ./$installScript -c $Channel -v $Version
# .NET Core's crypto library needs brew's OpenSSL libraries added to its rpath
if ($IsOSX) {
# This is the library shipped with .NET Core
# This is allowed to fail as the user may have installed other versions of dotnet
find $env:HOME/.dotnet -name System.Security.Cryptography.Native.dylib | xargs sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib
}
}
# Install for Windows