diff --git a/build/AzureInfo.props b/build/AzureInfo.props index 2773a817c..490ea909e 100644 --- a/build/AzureInfo.props +++ b/build/AzureInfo.props @@ -1,6 +1,10 @@ Sdk + $(PB_AssetRootUrl) + https://dotnetcli.azureedge.net/dotnet/ + $(PB_AssetRootAccessTokenSuffix) + ?$(CoreSetupBlobAccessToken) $(ARTIFACT_STORAGE_CONTAINER) dotnet $(ARTIFACT_STORAGE_KEY) @@ -12,10 +16,10 @@ $(CHECKSUM_STORAGE_KEY) $(CHECKSUM_STORAGE_ACCOUNT) dotnetclichecksums - $(TRANSPORTFEED_STORAGE_CONTAINER) - dotnet-core - $(TRANSPORTFEED_EXPECTED_URL) - https://dotnetfeed.blob.core.windows.net/$(TransportFeedContainerName)/index.json - $(TRANSPORTFEED_STORAGE_KEY) + $(BLOBFEED_STORAGE_CONTAINER) + dotnet-core + $(BLOBFEED_EXPECTED_URL) + https://dotnetfeed.blob.core.windows.net/$(BlobFeedContainerName)/index.json + $(BLOBFEED_STORAGE_KEY) diff --git a/build/BackwardsCompatibilityRuntimes.props b/build/BackwardsCompatibilityRuntimes.props index 9664fdadf..85303240f 100644 --- a/build/BackwardsCompatibilityRuntimes.props +++ b/build/BackwardsCompatibilityRuntimes.props @@ -21,7 +21,6 @@ $(BackwardsCompatibility110CoreSetupBlobRootUrlWithChannel)/Installers $(IntermediateDirectory)/coreSetupDownload/$(BackwardsCompatibility110SharedFrameworkVersion) $(BackwardsCompatibility110CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension) - ?$(CoreSetupBlobAccessToken) diff --git a/build/BundledRuntimes.props b/build/BundledRuntimes.props index cbc7a67a0..82f47ecca 100644 --- a/build/BundledRuntimes.props +++ b/build/BundledRuntimes.props @@ -27,8 +27,6 @@ - https://dotnetcli.azureedge.net/dotnet/ - ?$(CoreSetupBlobAccessToken) $(CoreSetupBlobRootUrl)Runtime/ $(IntermediateDirectory)/coreSetupDownload/$(SharedFrameworkVersion) $(CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension) diff --git a/build/Publish.targets b/build/Publish.targets index 9e911318c..918ae556e 100644 --- a/build/Publish.targets +++ b/build/Publish.targets @@ -3,7 +3,7 @@ - + @@ -25,7 +25,7 @@ GenerateChecksums; UploadArtifactsToAzure; UploadChecksumsToAzure; - PublishNupkgToTransportFeed; + PublishNupkgToBlobFeed; PublishDebFilesToDebianRepo; PublishCliVersionBadge" /> diff --git a/build/compile/LzmaArchive.targets b/build/compile/LzmaArchive.targets index 494164b26..37c96d648 100644 --- a/build/compile/LzmaArchive.targets +++ b/build/compile/LzmaArchive.targets @@ -2,19 +2,17 @@ - - ?$(CoreSetupBlobAccessToken) $(SdkOutputDirectory)/nuGetPackagesArchive.lzma nuGetPackagesArchive.$(AspNetCoreRuntimePackageFlavor).lzma $(IntermediateDirectory)/$(NugetPackagesArchiveName) - $(AspNetCoreRuntimeInstallerBlobRootUrl)/$(NugetPackagesArchiveName)$(CoreSetupBlobAccessTokenParam) + $(AspNetCoreRuntimeInstallerBlobRootUrl)/$(NugetPackagesArchiveName) - diff --git a/build/publish/PublishNupkgToTransportFeed.targets b/build/publish/PublishNupkgToBlobFeed.targets similarity index 52% rename from build/publish/PublishNupkgToTransportFeed.targets rename to build/publish/PublishNupkgToBlobFeed.targets index 19dd03e71..eb8ba821a 100644 --- a/build/publish/PublishNupkgToTransportFeed.targets +++ b/build/publish/PublishNupkgToBlobFeed.targets @@ -7,13 +7,13 @@ - - - + + + - - + diff --git a/dir.props b/dir.props index 756fccc32..a59eba29e 100644 --- a/dir.props +++ b/dir.props @@ -20,7 +20,7 @@ - + @@ -40,7 +40,6 @@ - diff --git a/scripts/obtain/dotnet-install.ps1 b/scripts/obtain/dotnet-install.ps1 index 89e6e74d8..e267edc76 100644 --- a/scripts/obtain/dotnet-install.ps1 +++ b/scripts/obtain/dotnet-install.ps1 @@ -49,10 +49,13 @@ .PARAMETER AzureFeed Default: https://dotnetcli.azureedge.net/dotnet This parameter typically is not changed by the user. - It allows to change URL for the Azure feed used by this installer. + It allows changing the URL for the Azure feed used by this installer. .PARAMETER UncachedFeed This parameter typically is not changed by the user. - It allows to change URL for the Uncached feed used by this installer. + It allows changing the URL for the Uncached feed used by this installer. +.PARAMETER FeedCredential + Used as a query string to append to the Azure feed. + It allows changing the URL to use non-public blob storage accounts. .PARAMETER ProxyAddress If set, the installer will use the proxy when making web requests .PARAMETER ProxyUseDefaultCredentials @@ -73,6 +76,7 @@ param( [switch]$NoPath, [string]$AzureFeed="https://dotnetcli.azureedge.net/dotnet", [string]$UncachedFeed="https://dotnetcli.blob.core.windows.net/dotnet", + [string]$FeedCredential, [string]$ProxyAddress, [switch]$ProxyUseDefaultCredentials, [switch]$SkipNonVersionedFiles @@ -199,8 +203,9 @@ function GetHTTPResponse([Uri] $Uri) # Default timeout for HttpClient is 100s. For a 50 MB download this assumes 500 KB/s average, any less will time out # 10 minutes allows it to work over much slower connections. $HttpClient.Timeout = New-TimeSpan -Minutes 10 - $Response = $HttpClient.GetAsync($Uri).Result + $Response = $HttpClient.GetAsync("${Uri}${FeedCredential}").Result if (($Response -eq $null) -or (-not ($Response.IsSuccessStatusCode))) { + # The feed credential is potentially sensitive info. Do not log FeedCredential to console output. $ErrorMsg = "Failed to download $Uri." if ($Response -ne $null) { $ErrorMsg += " $Response" diff --git a/scripts/obtain/dotnet-install.sh b/scripts/obtain/dotnet-install.sh index e409fe06d..628751836 100755 --- a/scripts/obtain/dotnet-install.sh +++ b/scripts/obtain/dotnet-install.sh @@ -227,10 +227,10 @@ check_pre_reqs() { local librarypath=${LD_LIBRARY_PATH:-} LDCONFIG_COMMAND="$LDCONFIG_COMMAND -NXv ${librarypath//:/ }" - [ -z "$($LDCONFIG_COMMAND | grep libunwind)" ] && say_err "Unable to locate libunwind. Install libunwind to continue" && failing=true - [ -z "$($LDCONFIG_COMMAND | grep libssl)" ] && say_err "Unable to locate libssl. Install libssl to continue" && failing=true - [ -z "$($LDCONFIG_COMMAND | grep libicu)" ] && say_err "Unable to locate libicu. Install libicu to continue" && failing=true - [ -z "$($LDCONFIG_COMMAND | grep -F libcurl.so)" ] && say_err "Unable to locate libcurl. Install libcurl to continue" && failing=true + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libunwind)" ] && say_err "Unable to locate libunwind. Install libunwind to continue" && failing=true + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libssl)" ] && say_err "Unable to locate libssl. Install libssl to continue" && failing=true + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libicu)" ] && say_err "Unable to locate libicu. Install libicu to continue" && failing=true + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep -F libcurl.so)" ] && say_err "Unable to locate libcurl. Install libcurl to continue" && failing=true fi if [ "$failing" = true ]; then @@ -618,6 +618,9 @@ downloadcurl() { local remote_path="$1" local out_path="${2:-}" + # Append feed_credential as late as possible before calling curl to avoid logging feed_credential + remote_path="${remote_path}${feed_credential}" + local failed=false if [ -z "$out_path" ]; then curl --retry 10 -sSL -f --create-dirs "$remote_path" || failed=true @@ -636,6 +639,9 @@ downloadwget() { local remote_path="$1" local out_path="${2:-}" + # Append feed_credential as late as possible before calling wget to avoid logging feed_credential + remote_path="${remote_path}${feed_credential}" + local failed=false if [ -z "$out_path" ]; then wget -q --tries 10 -O - "$remote_path" || failed=true @@ -725,6 +731,7 @@ dry_run=false no_path=false azure_feed="https://dotnetcli.azureedge.net/dotnet" uncached_feed="https://dotnetcli.blob.core.windows.net/dotnet" +feed_credential="" verbose=false shared_runtime=false runtime_id="" @@ -770,6 +777,10 @@ do shift uncached_feed="$1" ;; + --feed-credential|-[Ff]eed[Cc]redential) + shift + feed_credential="$1" + ;; --runtime-id|-[Rr]untime[Ii]d) shift runtime_id="$1" @@ -804,22 +815,23 @@ do echo " coherent applies only to SDK downloads" echo " - 3-part version in a format A.B.C - represents specific version of build" echo " examples: 2.0.0-preview2-006120; 1.1.0" - echo " -i,--install-dir Install under specified location (see Install Location below)" + echo " -i,--install-dir Install under specified location (see Install Location below)" echo " -InstallDir" - echo " --architecture Architecture of .NET Tools. Currently only x64 is supported." + echo " --architecture Architecture of .NET Tools. Currently only x64 is supported." echo " --arch,-Architecture,-Arch" - echo " --shared-runtime Installs just the shared runtime bits, not the entire SDK." + echo " --shared-runtime Installs just the shared runtime bits, not the entire SDK." echo " -SharedRuntime" - echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable." + echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable." echo " -SkipNonVersionedFiles" - echo " --dry-run,-DryRun Do not perform installation. Display download link." - echo " --no-path, -NoPath Do not set PATH for the current process." - echo " --verbose,-Verbose Display diagnostics information." - echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user." - echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user." - echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)." + echo " --dry-run,-DryRun Do not perform installation. Display download link." + echo " --no-path, -NoPath Do not set PATH for the current process." + echo " --verbose,-Verbose Display diagnostics information." + echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user." + echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user." + echo " --feed-credential,-FeedCredential Azure feed shared access token. This parameter typically is not specified." + echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)." echo " -RuntimeId" - echo " -?,--?,-h,--help,-Help Shows this help message" + echo " -?,--?,-h,--help,-Help Shows this help message" echo "" echo "Install Location:" echo " Location is chosen in following order:"