From f42d7c9925a60bb9758fab3a3c299ebb65b23c6a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 9 May 2026 02:02:01 +0000 Subject: [PATCH 01/43] Update dependencies from https://github.com/dotnet/dotnet build 20260508.7 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26258.107 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26258.107 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26258.107 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26258.107 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index d95ef541d66..3b84c95cc52 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26256.105 - 11.0.0-beta.26256.105 - 0.11.5-preview.26256.105 - 11.0.0-beta.26256.105 - 11.0.0-preview.5.26256.105 - 11.0.0-preview.5.26256.105 - 11.0.0-preview.5.26256.105 - 11.0.100-preview.5.26256.105 - 11.0.0-preview.5.26256.105 - 11.0.100-preview.5.26256.105 + 11.0.0-beta.26258.107 + 11.0.0-beta.26258.107 + 0.11.5-preview.26258.107 + 11.0.0-beta.26258.107 + 11.0.0-preview.5.26258.107 + 11.0.0-preview.5.26258.107 + 11.0.0-preview.5.26258.107 + 11.0.100-preview.5.26258.107 + 11.0.0-preview.5.26258.107 + 11.0.100-preview.5.26258.107 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 20344ce7f64..b35e37861e5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - d64191f29ec9042e2696d8b7d8326c4bd10ba268 + 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 diff --git a/global.json b/global.json index a67673b1850..73d2ff863b3 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26256.105" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26256.105" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26258.107" } } From 4d9f461bf7aacc9a1eb748ed593887490aa8a1bf Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 9 May 2026 02:02:49 +0000 Subject: [PATCH 02/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 73d2ff863b3..c1cdd2f2487 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26256.105", + "version": "11.0.100-preview.5.26258.107", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26256.105" + "dotnet": "11.0.100-preview.5.26258.107" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26258.107" From 16a77ef06621a1b765c75907fe4641133b0a1a54 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 10 May 2026 02:01:24 +0000 Subject: [PATCH 03/43] Update dependencies from https://github.com/dotnet/dotnet build 20260508.10 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26258.110 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26258.110 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26258.110 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26258.110 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 3b84c95cc52..9783745bfa6 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26258.107 - 11.0.0-beta.26258.107 - 0.11.5-preview.26258.107 - 11.0.0-beta.26258.107 - 11.0.0-preview.5.26258.107 - 11.0.0-preview.5.26258.107 - 11.0.0-preview.5.26258.107 - 11.0.100-preview.5.26258.107 - 11.0.0-preview.5.26258.107 - 11.0.100-preview.5.26258.107 + 11.0.0-beta.26258.110 + 11.0.0-beta.26258.110 + 0.11.5-preview.26258.110 + 11.0.0-beta.26258.110 + 11.0.0-preview.5.26258.110 + 11.0.0-preview.5.26258.110 + 11.0.0-preview.5.26258.110 + 11.0.100-preview.5.26258.110 + 11.0.0-preview.5.26258.110 + 11.0.100-preview.5.26258.110 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b35e37861e5..e618646d190 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 6a78ff2ff4f82b8929d58d6af5d97b16737ca756 + 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 diff --git a/global.json b/global.json index c1cdd2f2487..32ce96cfbd9 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26258.107" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26258.107" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26258.110" } } From 037bae98767c5d4cbc8c6c0eb01c773bd486a6b9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 10 May 2026 02:02:14 +0000 Subject: [PATCH 04/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 32ce96cfbd9..1877da0f741 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26258.107", + "version": "11.0.100-preview.5.26258.110", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26258.107" + "dotnet": "11.0.100-preview.5.26258.110" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26258.110" From 6df206e29bc327e0ab9a14b6318a262b5f81059a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 12 May 2026 02:03:16 +0000 Subject: [PATCH 05/43] Update dependencies from https://github.com/dotnet/dotnet build 20260511.1 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26261.101 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26261.101 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26261.101 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26261.101 --- eng/Version.Details.props | 20 ++++----- eng/Version.Details.xml | 40 ++++++++--------- eng/common/AGENTS.md | 5 +++ eng/common/core-templates/job/onelocbuild.yml | 3 ++ eng/common/cross/toolchain.cmake | 12 ++++-- eng/common/dotnet-install.ps1 | 6 ++- eng/common/dotnet-install.sh | 6 ++- eng/common/tools.ps1 | 38 +++++++++------- eng/common/tools.sh | 43 +++++++++++-------- global.json | 2 +- 10 files changed, 105 insertions(+), 70 deletions(-) create mode 100644 eng/common/AGENTS.md diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9783745bfa6..b013cae5d0c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26258.110 - 11.0.0-beta.26258.110 - 0.11.5-preview.26258.110 - 11.0.0-beta.26258.110 - 11.0.0-preview.5.26258.110 - 11.0.0-preview.5.26258.110 - 11.0.0-preview.5.26258.110 - 11.0.100-preview.5.26258.110 - 11.0.0-preview.5.26258.110 - 11.0.100-preview.5.26258.110 + 11.0.0-beta.26261.101 + 11.0.0-beta.26261.101 + 0.11.5-preview.26261.101 + 11.0.0-beta.26261.101 + 11.0.0-preview.5.26261.101 + 11.0.0-preview.5.26261.101 + 11.0.0-preview.5.26261.101 + 11.0.100-preview.5.26261.101 + 11.0.0-preview.5.26261.101 + 11.0.100-preview.5.26261.101 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e618646d190..28c066b393e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 2c9bec4ec0be4c22ce27ece0c2ca0a8a4d481168 + 547c640d5626b2976499cb3433abc741a63d67c5 diff --git a/eng/common/AGENTS.md b/eng/common/AGENTS.md new file mode 100644 index 00000000000..a5ed8f72926 --- /dev/null +++ b/eng/common/AGENTS.md @@ -0,0 +1,5 @@ +# `eng/common` + +Files under `eng/common` come from [Arcade](https://github.com/dotnet/arcade). +Edits in `eng/common` will be overwritten by automation unless the changes are made directly in the Arcade repository. +For more information, see the [Arcade documentation](https://github.com/dotnet/arcade/tree/main/Documentation). diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index eefed3b667a..86ea9f63504 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -22,6 +22,7 @@ parameters: GitHubOrg: dotnet MirrorRepo: '' MirrorBranch: main + xLocCustomPowerShellScript: '' condition: '' JobNameSuffix: '' is1ESPipeline: '' @@ -97,6 +98,8 @@ jobs: gitHubOrganization: ${{ parameters.GitHubOrg }} mirrorRepo: ${{ parameters.MirrorRepo }} mirrorBranch: ${{ parameters.MirrorBranch }} + ${{ if ne(parameters.xLocCustomPowerShellScript, '') }}: + xLocCustomPowerShellScript: ${{ parameters.xLocCustomPowerShellScript }} condition: ${{ parameters.condition }} # Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index ff2dfdb4a5b..99d6dfe82dd 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -225,13 +225,19 @@ elseif(ILLUMOS) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) elseif(HAIKU) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") - set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") - locate_toolchain_exec(gcc CMAKE_C_COMPILER) - locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) + if ($ENV{CCC_CC} MATCHES ".*gcc.*") + set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") + locate_toolchain_exec(gcc CMAKE_C_COMPILER) + locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) + else() + set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/cross-tools-x86_64") + set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/cross-tools-x86_64") + set(CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/cross-tools-x86_64") + endif() # let CMake set up the correct search paths include(Platform/Haiku) diff --git a/eng/common/dotnet-install.ps1 b/eng/common/dotnet-install.ps1 index 811f0f717f7..50ae6273768 100644 --- a/eng/common/dotnet-install.ps1 +++ b/eng/common/dotnet-install.ps1 @@ -10,7 +10,11 @@ Param( . $PSScriptRoot\tools.ps1 -$dotnetRoot = Join-Path $RepoRoot '.dotnet' +if (-not [string]::IsNullOrEmpty($env:DOTNET_GLOBAL_INSTALL_DIR)) { + $dotnetRoot = $env:DOTNET_GLOBAL_INSTALL_DIR +} else { + $dotnetRoot = Join-Path $RepoRoot '.dotnet' +} $installdir = $dotnetRoot try { diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh index 61f302bb677..1cb3f5abac2 100644 --- a/eng/common/dotnet-install.sh +++ b/eng/common/dotnet-install.sh @@ -80,7 +80,11 @@ case $cpuname in ;; esac -dotnetRoot="${repo_root}.dotnet" +if [[ -n "${DOTNET_GLOBAL_INSTALL_DIR:-}" ]]; then + dotnetRoot="$DOTNET_GLOBAL_INSTALL_DIR" +else + dotnetRoot="${repo_root}.dotnet" +fi if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then dotnetRoot="$dotnetRoot/$architecture" fi diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 65adefc7f26..0e281df8cae 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -168,6 +168,12 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { $env:DOTNET_CLI_TELEMETRY_OPTOUT=1 } + # Keep repo builds isolated from machine-installed SDK state and workload advertising. + # This avoids preview SDK builds picking up mismatched workloads on CI images. + $env:DOTNET_MULTILEVEL_LOOKUP = '0' + $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1' + $env:DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE = '1' + # Find the first path on %PATH% that contains the dotnet.exe if ($useInstalledDotNetCli -and (-not $globalJsonHasRuntimes) -and ($env:DOTNET_INSTALL_DIR -eq $null)) { $dotnetExecutable = GetExecutableFileName 'dotnet' @@ -230,6 +236,9 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { Write-PipelinePrependPath -Path $dotnetRoot Write-PipelineSetVariable -Name 'DOTNET_NOLOGO' -Value '1' + Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' + Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1' + Write-PipelineSetVariable -Name 'DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE' -Value '1' return $global:_DotNetInstallDir = $dotnetRoot } @@ -619,11 +628,7 @@ function GetSdkTaskProject([string]$taskName) { if (Test-Path $proj) { return $proj } - # TODO: Remove this fallback once all supported versions use the new layout. - $legacyProj = Join-Path $toolsetDir "SdkTasks\$taskName.proj" - if (Test-Path $legacyProj) { - return $legacyProj - } + throw "Unable to find $taskName.proj in toolset at: $toolsetDir" } @@ -699,23 +704,14 @@ function InitializeToolset() { $packageDir = Join-Path $nugetCache (Join-Path 'microsoft.dotnet.arcade.sdk' $toolsetVersion) $packageToolsetDir = Join-Path $packageDir 'toolset' - $packageToolsDir = Join-Path $packageDir 'tools' - # TODO: Remove the tools/ check once all supported versions have the toolset folder. - if (!(Test-Path $packageToolsetDir) -and !(Test-Path $packageToolsDir)) { + if (!(Test-Path $packageToolsetDir)) { Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Arcade SDK package does not contain a toolset or tools folder: $packageDir" ExitWithExitCode 3 } New-Item -ItemType Directory -Path $toolsetToolsDir -Force | Out-Null - - # Copy toolset if present at the package root (new layout), otherwise fall back to tools - if (Test-Path $packageToolsetDir) { - Copy-Item -Path "$packageToolsetDir\*" -Destination $toolsetToolsDir -Recurse -Force - } else { - # TODO: Remove this fallback once all supported versions have the toolset folder. - Copy-Item -Path "$packageToolsDir\*" -Destination $toolsetToolsDir -Recurse -Force - } + Copy-Item -Path "$packageToolsetDir\*" -Destination $toolsetToolsDir -Recurse -Force if (Test-Path $buildProjPath) { $toolsetBuildProj = $buildProjPath @@ -842,6 +838,10 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" + if ($ci -and $buildTool.Tool -eq 'dotnet') { + $cmdArgs += ' /p:MSBuildEnableWorkloadResolver=false' + } + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable if ($env:MSBUILD_MT_ENABLED -eq "1") { $cmdArgs += ' -mt' @@ -952,6 +952,12 @@ Create-Directory $ToolsetDir Create-Directory $TempDir Create-Directory $LogDir +# Direct MSBuild crash diagnostics (MSB4166 failure.txt files) to a known location +# under artifacts/log so they are captured as build artifacts in CI. +if (-not $env:MSBUILDDEBUGPATH) { + $env:MSBUILDDEBUGPATH = Join-Path $LogDir 'MsbuildDebugLogs' +} + Write-PipelineSetVariable -Name 'Artifacts' -Value $ArtifactsDir Write-PipelineSetVariable -Name 'Artifacts.Toolset' -Value $ToolsetDir Write-PipelineSetVariable -Name 'Artifacts.Log' -Value $LogDir diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 95c55ce9b4d..5ff37cfb700 100644 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -126,6 +126,12 @@ function InitializeDotNetCli { export DOTNET_CLI_TELEMETRY_OPTOUT=1 fi + # Keep repo builds isolated from machine-installed SDK state and workload advertising. + # This avoids preview SDK builds picking up mismatched workloads on CI images. + export DOTNET_MULTILEVEL_LOOKUP=0 + export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + export DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE=1 + # LTTNG is the logging infrastructure used by Core CLR. Need this variable set # so it doesn't output warnings to the console. export LTTNG_HOME="$HOME" @@ -171,6 +177,9 @@ function InitializeDotNetCli { Write-PipelinePrependPath -path "$dotnet_root" Write-PipelineSetVariable -name "DOTNET_NOLOGO" -value "1" + Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" + Write-PipelineSetVariable -name "DOTNET_SKIP_FIRST_TIME_EXPERIENCE" -value "1" + Write-PipelineSetVariable -name "DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE" -value "1" # return value _InitializeDotNetCli="$dotnet_root" @@ -449,21 +458,13 @@ function InitializeToolset { local package_dir="$_GetNuGetPackageCachePath/microsoft.dotnet.arcade.sdk/$toolset_version" - # TODO: Remove the tools/ check once all supported versions have the toolset folder. - if [[ ! -d "$package_dir/toolset" && ! -d "$package_dir/tools" ]]; then - Write-PipelineTelemetryError -category 'InitializeToolset' "Arcade SDK package does not contain a toolset or tools folder: $package_dir" + if [[ ! -d "$package_dir/toolset" ]]; then + Write-PipelineTelemetryError -category 'InitializeToolset' "Arcade SDK package does not contain a toolset folder: $package_dir" ExitWithExitCode 3 fi mkdir -p "$toolset_tools_dir" - - # Copy toolset if present at the package root (new layout), otherwise fall back to tools - if [[ -d "$package_dir/toolset" ]]; then - cp -r "$package_dir/toolset/." "$toolset_tools_dir" - else - # TODO: Remove this fallback once all supported versions have the toolset folder. - cp -r "$package_dir/tools/." "$toolset_tools_dir" - fi + cp -r "$package_dir/toolset/." "$toolset_tools_dir" if [[ -a "$toolset_tools_dir/Build.proj" ]]; then toolset_build_proj="$toolset_tools_dir/Build.proj" @@ -590,7 +591,12 @@ function MSBuild-Core { warnnotaserror_switch="/warnnotaserror:$warn_not_as_error /p:AdditionalWarningsNotAsErrors=$warn_not_as_error" fi - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + local workload_resolver_switch="" + if [[ "$ci" == true && -n "${_InitializeBuildToolCommand:-}" ]]; then + workload_resolver_switch="/p:MSBuildEnableWorkloadResolver=false" + fi + + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch $workload_resolver_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { @@ -615,12 +621,7 @@ function GetSdkTaskProject { echo "$proj" return fi - # TODO: Remove this fallback once all supported versions use the new layout. - local legacyProj="$toolsetDir/SdkTasks/$taskName.proj" - if [[ -a "$legacyProj" ]]; then - echo "$legacyProj" - return - fi + Write-PipelineTelemetryError -category 'Build' "Unable to find $taskName.proj in toolset at: $toolsetDir" ExitWithExitCode 3 } @@ -660,6 +661,12 @@ mkdir -p "$toolset_dir" mkdir -p "$temp_dir" mkdir -p "$log_dir" +# Direct MSBuild crash diagnostics (MSB4166 failure.txt files) to a known location +# under artifacts/log so they are captured as build artifacts in CI. +if [[ -z "${MSBUILDDEBUGPATH:-}" ]]; then + export MSBUILDDEBUGPATH="$log_dir/MsbuildDebugLogs" +fi + Write-PipelineSetVariable -name "Artifacts" -value "$artifacts_dir" Write-PipelineSetVariable -name "Artifacts.Toolset" -value "$toolset_dir" Write-PipelineSetVariable -name "Artifacts.Log" -value "$log_dir" diff --git a/global.json b/global.json index 1877da0f741..084b41a7e6d 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26258.110" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26258.110" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26261.101" } } From f6f56e16c7f8bd7578e12a45ea5117a43a8f9080 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 12 May 2026 02:04:07 +0000 Subject: [PATCH 06/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 084b41a7e6d..1bf6bb0b81b 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26258.110", + "version": "11.0.100-preview.5.26261.101", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26258.110" + "dotnet": "11.0.100-preview.5.26261.101" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26261.101" From 79d437da99ae9201113edf728af411ff5fac07b4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 14 May 2026 02:01:56 +0000 Subject: [PATCH 07/43] Update dependencies from https://github.com/dotnet/dotnet build 20260513.12 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26263.112 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26263.112 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26263.112 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26263.112 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index b013cae5d0c..8da61441d07 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26261.101 - 11.0.0-beta.26261.101 - 0.11.5-preview.26261.101 - 11.0.0-beta.26261.101 - 11.0.0-preview.5.26261.101 - 11.0.0-preview.5.26261.101 - 11.0.0-preview.5.26261.101 - 11.0.100-preview.5.26261.101 - 11.0.0-preview.5.26261.101 - 11.0.100-preview.5.26261.101 + 11.0.0-beta.26263.112 + 11.0.0-beta.26263.112 + 0.11.5-preview.26263.112 + 11.0.0-beta.26263.112 + 11.0.0-preview.5.26263.112 + 11.0.0-preview.5.26263.112 + 11.0.0-preview.5.26263.112 + 11.0.100-preview.5.26263.112 + 11.0.0-preview.5.26263.112 + 11.0.100-preview.5.26263.112 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 28c066b393e..fadffa98ac4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 547c640d5626b2976499cb3433abc741a63d67c5 + 0d945d08da237ae1726e34e0dba13aabba06e593 diff --git a/global.json b/global.json index 1bf6bb0b81b..c32e472197c 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26261.101" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26261.101" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26263.112" } } From 4f6f7a58c037f6edcf78a6fb7615b39fce6d546b Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 14 May 2026 02:02:46 +0000 Subject: [PATCH 08/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index c32e472197c..72dd059a0a5 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26261.101", + "version": "11.0.100-preview.5.26263.112", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26261.101" + "dotnet": "11.0.100-preview.5.26263.112" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26263.112" From 5d391ecdd858b5023a5156d0b69beeb663507ff9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 15 May 2026 02:02:00 +0000 Subject: [PATCH 09/43] Update dependencies from https://github.com/dotnet/dotnet build 20260514.5 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26264.105 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26264.105 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26264.105 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26264.105 --- eng/Version.Details.props | 20 +-- eng/Version.Details.xml | 40 +++--- .../core-templates/steps/publish-logs.yml | 2 - eng/common/cross/build-rootfs.sh | 107 ++++++-------- eng/common/cross/install-debs.py | 136 +++++++++++++----- global.json | 2 +- 6 files changed, 170 insertions(+), 137 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8da61441d07..da6a17c3e8c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26263.112 - 11.0.0-beta.26263.112 - 0.11.5-preview.26263.112 - 11.0.0-beta.26263.112 - 11.0.0-preview.5.26263.112 - 11.0.0-preview.5.26263.112 - 11.0.0-preview.5.26263.112 - 11.0.100-preview.5.26263.112 - 11.0.0-preview.5.26263.112 - 11.0.100-preview.5.26263.112 + 11.0.0-beta.26264.105 + 11.0.0-beta.26264.105 + 0.11.5-preview.26264.105 + 11.0.0-beta.26264.105 + 11.0.0-preview.5.26264.105 + 11.0.0-preview.5.26264.105 + 11.0.0-preview.5.26264.105 + 11.0.100-preview.5.26264.105 + 11.0.0-preview.5.26264.105 + 11.0.100-preview.5.26264.105 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fadffa98ac4..b50d23ec0bb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 0d945d08da237ae1726e34e0dba13aabba06e593 + 008122261807c899eedca718a431fb5b7a07b8f2 diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 84a1922c73f..5fc099a1143 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -33,8 +33,6 @@ steps: '$(publishing-dnceng-devdiv-code-r-build-re)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' - '$(microsoft-symbol-server-pat)' - '$(symweb-symbol-server-pat)' '$(dnceng-symbol-server-pat)' '$(dn-bot-all-orgs-build-rw-code-rw)' '$(System.AccessToken)' diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 314c93c5759..cef5d2d6716 100644 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -5,7 +5,7 @@ set -e usage() { echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]" - echo "BuildArch can be: arm(default), arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64, x86" + echo "BuildArch can be: arm(default), arm64, loongarch64, ppc64le, riscv64, s390x, x64, x86" echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine" echo " for alpine can be specified with version: alpineX.YY or alpineedge" echo " for FreeBSD can be: freebsd13, freebsd14" @@ -139,7 +139,6 @@ __AlpineKeys=' 616db30d:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0\nlIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm\na6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw\ntO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C\nUS/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP\nhP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv\nLSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0\nx9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF\nwmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG\nLPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV\nGZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C\n8CM1S15HxV78s9dFntEqIokCAwEAAQ== 66ba20fe:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/\n6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ\n+HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP\nrt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg\nodXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK\nvrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY\ns+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS\nYm6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD\nYTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND\n7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3\nG9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw\nA8+KzFseBh4UFGgue78KwgkCAwEAAQ== ' -__Keyring= __KeyringFile="/usr/share/keyrings/ubuntu-archive-keyring.gpg" __SkipSigCheck=0 __SkipEmulation=0 @@ -162,6 +161,10 @@ while :; do __AlpineArch=armv7 __QEMUArch=arm ;; + armel) + # this is only used for tizen-build-rootfs.sh + __BuildArch=armel + ;; arm64) __BuildArch=arm64 __UbuntuArch=arm64 @@ -172,31 +175,6 @@ while :; do __OpenBSDArch=arm64 __OpenBSDMachineArch=aarch64 ;; - armel) - __BuildArch=armel - __UbuntuArch=armel - __UbuntuRepo="http://archive.debian.org/debian/" - __CodeName=buster - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" - __LLDB_Package="liblldb-6.0-dev" - __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" - __UbuntuPackages="${__UbuntuPackages// libomp5/}" - __UbuntuSuites= - ;; - armv6) - __BuildArch=armv6 - __UbuntuArch=armhf - __QEMUArch=arm - __UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/" - __CodeName=buster - __KeyringFile="/usr/share/keyrings/raspbian-archive-keyring.gpg" - __LLDB_Package="liblldb-6.0-dev" - __UbuntuSuites= - - if [[ -e "$__KeyringFile" ]]; then - __Keyring="--keyring $__KeyringFile" - fi - ;; loongarch64) __BuildArch=loongarch64 __AlpineArch=loongarch64 @@ -204,10 +182,6 @@ while :; do __UbuntuArch=loong64 __UbuntuSuites=unreleased __LLDB_Package="liblldb-19-dev" - - if [[ "$__CodeName" == "sid" ]]; then - __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" - fi ;; riscv64) __BuildArch=riscv64 @@ -223,7 +197,7 @@ while :; do __AlpineArch=ppc64le __QEMUArch=ppc64le __UbuntuArch=ppc64el - __UbuntuRepo="http://ports.ubuntu.com/ubuntu-ports/" + __UbuntuRepo="https://ports.ubuntu.com/ubuntu-ports/" __UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}" __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" __UbuntuPackages="${__UbuntuPackages// libomp5/}" @@ -234,7 +208,7 @@ while :; do __AlpineArch=s390x __QEMUArch=s390x __UbuntuArch=s390x - __UbuntuRepo="http://ports.ubuntu.com/ubuntu-ports/" + __UbuntuRepo="https://ports.ubuntu.com/ubuntu-ports/" __UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}" __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" __UbuntuPackages="${__UbuntuPackages// libomp5/}" @@ -250,13 +224,13 @@ while :; do __OpenBSDMachineArch=amd64 __illumosArch=x86_64 __HaikuArch=x86_64 - __UbuntuRepo="http://archive.ubuntu.com/ubuntu/" + __UbuntuRepo="https://archive.ubuntu.com/ubuntu/" ;; x86) __BuildArch=x86 __UbuntuArch=i386 __AlpineArch=x86 - __UbuntuRepo="http://archive.ubuntu.com/ubuntu/" + __UbuntuRepo="https://archive.ubuntu.com/ubuntu/" ;; lldb*) version="$(echo "$lowerI" | tr -d '[:alpha:]-=')" @@ -316,7 +290,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="https://archive.debian.org/debian/" fi ;; buster) # Debian 10 @@ -325,7 +299,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://archive.debian.org/debian/" + __UbuntuRepo="https://archive.debian.org/debian/" fi ;; bullseye) # Debian 11 @@ -333,7 +307,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="https://ftp.debian.org/debian/" fi ;; bookworm) # Debian 12 @@ -341,7 +315,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="https://ftp.debian.org/debian/" fi ;; sid) # Debian sid @@ -350,25 +324,21 @@ while :; do # Debian-Ports architectures need different values case "$__UbuntuArch" in - amd64|arm64|armel|armhf|i386|mips64el|ppc64el|riscv64|s390x) + amd64|arm64|armhf|i386|mips64el|ppc64el|riscv64|s390x) __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="https://ftp.debian.org/debian/" fi ;; *) __KeyringFile="/usr/share/keyrings/debian-ports-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + __UbuntuRepo="https://ftp.debian.org/debian-ports/" fi ;; esac - - if [[ -e "$__KeyringFile" ]]; then - __Keyring="--keyring $__KeyringFile" - fi ;; tizen) __CodeName= @@ -472,7 +442,7 @@ fi __UbuntuPackages+=" ${__LLDB_Package:-}" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ports.ubuntu.com/" + __UbuntuRepo="https://ports.ubuntu.com/" fi if [[ -n "$__LLVM_MajorVersion" ]]; then @@ -559,15 +529,15 @@ if [[ "$__CodeName" == "alpine" ]]; then # initialize DB # shellcheck disable=SC2086 "$__ApkToolsDir/apk.static" \ - -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ - -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ + -X "https://dl-cdn.alpinelinux.org/alpine/$version/main" \ + -X "https://dl-cdn.alpinelinux.org/alpine/$version/community" \ -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" --initdb add if [[ "$__AlpineLlvmLibsLookup" == 1 ]]; then # shellcheck disable=SC2086 __AlpinePackages+=" $("$__ApkToolsDir/apk.static" \ - -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ - -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ + -X "https://dl-cdn.alpinelinux.org/alpine/$version/main" \ + -X "https://dl-cdn.alpinelinux.org/alpine/$version/community" \ -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ search 'llvm*-libs' | grep -E '^llvm' | sort | tail -1 | sed 's/-[^-]*//2g')" fi @@ -575,8 +545,8 @@ if [[ "$__CodeName" == "alpine" ]]; then # install all packages in one go # shellcheck disable=SC2086 "$__ApkToolsDir/apk.static" \ - -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ - -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ + -X "https://dl-cdn.alpinelinux.org/alpine/$version/main" \ + -X "https://dl-cdn.alpinelinux.org/alpine/$version/community" \ -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" $__NoEmulationArg \ add $__AlpinePackages @@ -593,7 +563,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then curl -SL "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version fi echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf - echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf + echo "FreeBSD: { url: \"pkg+https://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf mkdir -p "$__RootfsDir"/tmp # get and build package manager if [[ "$__hasWget" == 1 ]]; then @@ -830,6 +800,14 @@ elif [[ "$__CodeName" == "haiku" ]]; then elif [[ -n "$__CodeName" ]]; then __Suites="$__CodeName $(for suite in $__UbuntuSuites; do echo -n "$__CodeName-$suite "; done)" + __SigCheckArgs= + if [[ "$__SkipSigCheck" == "0" ]]; then + if [[ -e "$__KeyringFile" ]]; then + __SigCheckArgs="--keyring $__KeyringFile" + fi + __SigCheckArgs="$__SigCheckArgs --force-check-gpg" + fi + if [[ "$__SkipEmulation" == "1" ]]; then if [[ -z "$AR" ]]; then if command -v ar &>/dev/null; then @@ -845,31 +823,23 @@ elif [[ -n "$__CodeName" ]]; then PYTHON=${PYTHON_EXECUTABLE:-python3} # shellcheck disable=SC2086,SC2046 - echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + echo running "$PYTHON" "$__CrossDir/install-debs.py" $__SigCheckArgs --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ $__UbuntuPackages # shellcheck disable=SC2086,SC2046 - "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + "$PYTHON" "$__CrossDir/install-debs.py" $__SigCheckArgs --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ $__UbuntuPackages exit 0 fi - __UpdateOptions= - if [[ "$__SkipSigCheck" == "0" ]]; then - __Keyring="$__Keyring --force-check-gpg" - else - __Keyring= - __UpdateOptions="--allow-unauthenticated --allow-insecure-repositories" - fi - # shellcheck disable=SC2086 - echo running debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" + echo running debootstrap "--variant=minbase" $__SigCheckArgs --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" # shellcheck disable=SC2086 - if ! debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"; then + if ! debootstrap "--variant=minbase" $__SigCheckArgs --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"; then echo "debootstrap failed! dumping debootstrap.log" cat "$__RootfsDir/debootstrap/debootstrap.log" exit 1 @@ -887,6 +857,11 @@ Components: main universe Signed-By: $__KeyringFile EOF + __UpdateOptions= + if [[ "$__SkipSigCheck" == "1" ]]; then + __UpdateOptions="--allow-unauthenticated --allow-insecure-repositories" + fi + # shellcheck disable=SC2086 chroot "$__RootfsDir" apt-get update $__UpdateOptions chroot "$__RootfsDir" apt-get -f -y install diff --git a/eng/common/cross/install-debs.py b/eng/common/cross/install-debs.py index c81eb37e522..100c4378da3 100644 --- a/eng/common/cross/install-debs.py +++ b/eng/common/cross/install-debs.py @@ -4,6 +4,7 @@ import asyncio import aiohttp import gzip +import hashlib import os import re import shutil @@ -16,7 +17,7 @@ from collections import deque from functools import cmp_to_key -async def download_file(session, url, dest_path, max_retries=3, retry_delay=2, timeout=60): +async def download_file(session, url, dest_path, max_retries=3, retry_delay=2, timeout=60, checksum=None): """Asynchronous file download with retries.""" attempt = 0 while attempt < max_retries: @@ -25,19 +26,25 @@ async def download_file(session, url, dest_path, max_retries=3, retry_delay=2, t if response.status == 200: with open(dest_path, "wb") as f: content = await response.read() + + # verify checksum if provided + if checksum: + sha256 = hashlib.sha256(content).hexdigest() + if sha256 != checksum: + raise Exception(f"SHA256 mismatch for {url}: expected {checksum}, got {sha256}") + f.write(content) print(f"Downloaded {url} at {dest_path}") return else: - print(f"Failed to download {url}, Status Code: {response.status}") - break + raise Exception(f"Failed to download {url}, Status Code: {response.status}") except (asyncio.CancelledError, asyncio.TimeoutError, aiohttp.ClientError) as e: print(f"Error downloading {url}: {type(e).__name__} - {e}. Retrying...") attempt += 1 await asyncio.sleep(retry_delay) - print(f"Failed to download {url} after {max_retries} attempts.") + raise Exception(f"Failed to download {url} after {max_retries} attempts.") async def download_deb_files_parallel(mirror, packages, tmp_dir): """Download .deb files in parallel.""" @@ -51,11 +58,11 @@ async def download_deb_files_parallel(mirror, packages, tmp_dir): if filename: url = f"{mirror}/{filename}" dest_path = os.path.join(tmp_dir, os.path.basename(filename)) - tasks.append(asyncio.create_task(download_file(session, url, dest_path))) + tasks.append(asyncio.create_task(download_file(session, url, dest_path, checksum=info.get("SHA256")))) await asyncio.gather(*tasks) -async def download_package_index_parallel(mirror, arch, suites): +async def download_package_index_parallel(mirror, arch, suites, check_sig, keyring): """Download package index files for specified suites and components entirely in memory.""" tasks = [] timeout = aiohttp.ClientTimeout(total=60) @@ -63,10 +70,9 @@ async def download_package_index_parallel(mirror, arch, suites): async with aiohttp.ClientSession(timeout=timeout) as session: for suite in suites: for component in ["main", "universe"]: - url = f"{mirror}/dists/{suite}/{component}/binary-{arch}/Packages.gz" - tasks.append(fetch_and_decompress(session, url)) + tasks.append(fetch_and_decompress(session, mirror, arch, suite, component, check_sig, keyring)) - results = await asyncio.gather(*tasks, return_exceptions=True) + results = await asyncio.gather(*tasks) merged_content = "" for result in results: @@ -77,20 +83,71 @@ async def download_package_index_parallel(mirror, arch, suites): return merged_content -async def fetch_and_decompress(session, url): +async def fetch_and_decompress(session, mirror, arch, suite, component, check_sig, keyring): """Fetch and decompress the Packages.gz file.""" - try: - async with session.get(url) as response: - if response.status == 200: - compressed_data = await response.read() - decompressed_data = gzip.decompress(compressed_data).decode('utf-8') - print(f"Downloaded index: {url}") - return decompressed_data - else: - print(f"Skipped index: {url} (doesn't exist)") - return None - except Exception as e: - print(f"Error fetching {url}: {e}") + + path = f"{component}/binary-{arch}/Packages.gz" + url = f"{mirror}/dists/{suite}/{path}" + + async with session.get(url) as response: + if response.status == 200: + compressed_data = await response.read() + decompressed_data = gzip.decompress(compressed_data).decode('utf-8') + print(f"Downloaded index: {url}") + + if check_sig: + # Verify the package index against the sha256 recorded in the Release file + release_file_content = await fetch_release_file(session, mirror, suite, keyring) + packages_sha = parse_release_file(release_file_content, path) + + sha256 = hashlib.sha256(compressed_data).hexdigest() + if sha256 != packages_sha: + raise Exception(f"SHA256 mismatch for {path}: expected {packages_sha}, got {sha256}") + print(f"Checksum verified for {path}") + + return decompressed_data + else: + print(f"Skipped index: {url} (doesn't exist)") + return None + +async def fetch_release_file(session, mirror, suite, keyring): + """Fetch Release and Release.gpg files and verify the signature.""" + + release_url = f"{mirror}/dists/{suite}/Release" + release_gpg_url = f"{mirror}/dists/{suite}/Release.gpg" + + with tempfile.NamedTemporaryFile() as release_file, tempfile.NamedTemporaryFile() as release_gpg_file: + await download_file(session, release_url, release_file.name) + await download_file(session, release_gpg_url, release_gpg_file.name) + + print("Verifying signature of Release with Release.gpg.") + verify_command = ["gpg"] + if keyring: + verify_command += ["--keyring", keyring] + verify_command += ["--verify", release_gpg_file.name, release_file.name] + result = subprocess.run(verify_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + if result.returncode != 0: + raise Exception(f"Signature verification failed: {result.stderr.decode('utf-8')}") + + print("Signature verified successfully.") + + with open(release_file.name) as f: + return f.read() + +def parse_release_file(content, path): + """Parses the Release file and returns sha256 checksum of the specified path.""" + + # data looks like this: + # + matches = re.findall(r'^ (\S*) +(\S*) +(\S*)$', content, re.MULTILINE) + + for entry in matches: + # the file has both md5 and sha256 checksums, we want sha256 which has a length of 64 + if entry[2] == path and len(entry[0]) == 64: + return entry[0] + + raise Exception(f"Could not find checksum for {path} in Release file.") def parse_debian_version(version): """Parse a Debian package version into epoch, upstream version, and revision.""" @@ -171,13 +228,15 @@ def parse_package_index(content): filename = fields.get("Filename") depends = fields.get("Depends") provides = fields.get("Provides", None) + sha256 = fields.get("SHA256") # Only update if package_name is not in packages or if the new version is higher if package_name not in packages or compare_debian_versions(version, packages[package_name]["Version"]) > 0: packages[package_name] = { "Version": version, "Filename": filename, - "Depends": depends + "Depends": depends, + "SHA256": sha256 } # Update aliases if package provides any alternatives @@ -233,7 +292,7 @@ def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): os.makedirs(extract_dir, exist_ok=True) with tempfile.TemporaryDirectory(dir=tmp_dir) as tmp_subdir: - result = subprocess.run(f"{ar_tool} t {os.path.abspath(deb_file)}", cwd=tmp_subdir, check=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + result = subprocess.run([ar_tool, "t", os.path.abspath(deb_file)], cwd=tmp_subdir, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) tar_filename = None for line in result.stdout.decode().splitlines(): @@ -247,7 +306,8 @@ def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): tar_file_path = os.path.join(tmp_subdir, tar_filename) print(f"Extracting {tar_filename} from {deb_file}..") - subprocess.run(f"{ar_tool} p {os.path.abspath(deb_file)} {tar_filename} > {tar_file_path}", check=True, shell=True) + with open(tar_file_path, "wb") as outfile: + subprocess.run([ar_tool, "p", os.path.abspath(deb_file), tar_filename], check=True, stdout=outfile, stderr=subprocess.PIPE) file_extension = os.path.splitext(tar_file_path)[1].lower() @@ -268,7 +328,7 @@ def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): raise ValueError(f"Unsupported compression format: {file_extension}") with tarfile.open(tar_file_path, mode) as tar: - tar.extractall(path=extract_dir, filter='fully_trusted') + tar.extractall(path=extract_dir, filter='tar') def finalize_setup(rootfsdir): lib_dir = os.path.join(rootfsdir, 'lib') @@ -295,24 +355,17 @@ def finalize_setup(rootfsdir): if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate rootfs for .NET runtime on Debian-like OS") - parser.add_argument("--distro", required=False, help="Distro name (e.g., debian, ubuntu, etc.)") parser.add_argument("--arch", required=True, help="Architecture (e.g., amd64, loong64, etc.)") parser.add_argument("--rootfsdir", required=True, help="Destination directory.") parser.add_argument('--suite', required=True, action='append', help='Specify one or more repository suites to collect index data.') - parser.add_argument("--mirror", required=False, help="Mirror (e.g., http://ftp.debian.org/debian-ports etc.)") + parser.add_argument("--mirror", required=True, help="Mirror (e.g., http://ftp.debian.org/debian-ports etc.)") parser.add_argument("--artool", required=False, default="ar", help="ar tool to extract debs (e.g., ar, llvm-ar etc.)") + parser.add_argument("--force-check-gpg", required=False, action='store_true', help="Verify the packages against signatures in Release file.") + parser.add_argument("--keyring", required=False, default='', help="Keyring file to check signature of Release file.") parser.add_argument("packages", nargs="+", help="List of package names to be installed.") args = parser.parse_args() - if args.mirror is None: - if args.distro == "ubuntu": - args.mirror = "http://archive.ubuntu.com/ubuntu" if args.arch in ["amd64", "i386"] else "http://ports.ubuntu.com/ubuntu-ports" - elif args.distro == "debian": - args.mirror = "http://ftp.debian.org/debian-ports" - else: - raise Exception("Unsupported distro") - DESIRED_PACKAGES = args.packages + [ # base packages "dpkg", "busybox", @@ -322,9 +375,16 @@ def finalize_setup(rootfsdir): "debianutils" ] - print(f"Creating rootfs. rootfsdir: {args.rootfsdir}, distro: {args.distro}, arch: {args.arch}, suites: {args.suite}, mirror: {args.mirror}") + print(f"Creating rootfs. rootfsdir: {args.rootfsdir}, arch: {args.arch}, suites: {args.suite}, mirror: {args.mirror}") + + check_sig = args.force_check_gpg + if check_sig and not args.keyring: + print("ERROR: --force-check-gpg requires --keyring to specify a keyring file for signature verification.") + print("Install the appropriate keyring package (e.g., debian-ports-archive-keyring, ubuntu-archive-keyring)") + print("or pass --skipsigcheck to build-rootfs.sh to disable signature checking.") + sys.exit(1) - package_index_content = asyncio.run(download_package_index_parallel(args.mirror, args.arch, args.suite)) + package_index_content = asyncio.run(download_package_index_parallel(args.mirror, args.arch, args.suite, check_sig, args.keyring)) packages_info, aliases = parse_package_index(package_index_content) diff --git a/global.json b/global.json index 72dd059a0a5..a050c89b4e5 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26263.112" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26263.112" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26264.105" } } From 05d50b392d9d75612fc98ab9a1dd90598106b542 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 15 May 2026 02:02:49 +0000 Subject: [PATCH 10/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index a050c89b4e5..9e94d7249d0 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26263.112", + "version": "11.0.100-preview.5.26264.105", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26263.112" + "dotnet": "11.0.100-preview.5.26264.105" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26264.105" From cccac6da275eeaeb58e9c3815b444155545443e7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 16 May 2026 02:01:57 +0000 Subject: [PATCH 11/43] Update dependencies from https://github.com/dotnet/dotnet build 20260515.16 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26265.116 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26265.116 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26265.116 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26265.116 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index da6a17c3e8c..4e36897d3b4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26264.105 - 11.0.0-beta.26264.105 - 0.11.5-preview.26264.105 - 11.0.0-beta.26264.105 - 11.0.0-preview.5.26264.105 - 11.0.0-preview.5.26264.105 - 11.0.0-preview.5.26264.105 - 11.0.100-preview.5.26264.105 - 11.0.0-preview.5.26264.105 - 11.0.100-preview.5.26264.105 + 11.0.0-beta.26265.116 + 11.0.0-beta.26265.116 + 0.11.5-preview.26265.116 + 11.0.0-beta.26265.116 + 11.0.0-preview.5.26265.116 + 11.0.0-preview.5.26265.116 + 11.0.0-preview.5.26265.116 + 11.0.100-preview.5.26265.116 + 11.0.0-preview.5.26265.116 + 11.0.100-preview.5.26265.116 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b50d23ec0bb..1edadf0cf86 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 008122261807c899eedca718a431fb5b7a07b8f2 + 3e9fc624ad2776475510f024f8f662828f4cb2a6 diff --git a/global.json b/global.json index 9e94d7249d0..4bbc8412219 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26264.105" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26264.105" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26265.116" } } From e6b803c7f2ba68a0a5fbe93574f1cbc85adc895c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 16 May 2026 02:02:47 +0000 Subject: [PATCH 12/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 4bbc8412219..6f208182b8f 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26264.105", + "version": "11.0.100-preview.5.26265.116", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26264.105" + "dotnet": "11.0.100-preview.5.26265.116" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26265.116" From d8f3f5adecf7f27cc06491250c9ddc0a1d3c8348 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 17 May 2026 02:01:43 +0000 Subject: [PATCH 13/43] Update dependencies from https://github.com/dotnet/dotnet build 20260516.3 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26266.103 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26266.103 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26266.103 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26266.103 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 4e36897d3b4..45fac3277d7 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26265.116 - 11.0.0-beta.26265.116 - 0.11.5-preview.26265.116 - 11.0.0-beta.26265.116 - 11.0.0-preview.5.26265.116 - 11.0.0-preview.5.26265.116 - 11.0.0-preview.5.26265.116 - 11.0.100-preview.5.26265.116 - 11.0.0-preview.5.26265.116 - 11.0.100-preview.5.26265.116 + 11.0.0-beta.26266.103 + 11.0.0-beta.26266.103 + 0.11.5-preview.26266.103 + 11.0.0-beta.26266.103 + 11.0.0-preview.5.26266.103 + 11.0.0-preview.5.26266.103 + 11.0.0-preview.5.26266.103 + 11.0.100-preview.5.26266.103 + 11.0.0-preview.5.26266.103 + 11.0.100-preview.5.26266.103 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1edadf0cf86..016bdc2d259 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 3e9fc624ad2776475510f024f8f662828f4cb2a6 + 3a62cc842c76761d4742f1d103892f19fd06dd3a diff --git a/global.json b/global.json index 6f208182b8f..f8b8fe50d70 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26265.116" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26265.116" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26266.103" } } From dfa5bbcc079cce8e5a5853303736964b0d37ed83 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 17 May 2026 02:02:28 +0000 Subject: [PATCH 14/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index f8b8fe50d70..8e26b42e531 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26265.116", + "version": "11.0.100-preview.5.26266.103", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26265.116" + "dotnet": "11.0.100-preview.5.26266.103" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26266.103" From 602b2bdb9a42683631065c1454872ba436dff900 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 19 May 2026 02:02:20 +0000 Subject: [PATCH 15/43] Update dependencies from https://github.com/dotnet/dotnet build 20260518.12 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26268.112 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26268.112 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26268.112 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26268.112 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 45fac3277d7..7cc683c02a1 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26266.103 - 11.0.0-beta.26266.103 - 0.11.5-preview.26266.103 - 11.0.0-beta.26266.103 - 11.0.0-preview.5.26266.103 - 11.0.0-preview.5.26266.103 - 11.0.0-preview.5.26266.103 - 11.0.100-preview.5.26266.103 - 11.0.0-preview.5.26266.103 - 11.0.100-preview.5.26266.103 + 11.0.0-beta.26268.112 + 11.0.0-beta.26268.112 + 0.11.5-preview.26268.112 + 11.0.0-beta.26268.112 + 11.0.0-preview.5.26268.112 + 11.0.0-preview.5.26268.112 + 11.0.0-preview.5.26268.112 + 11.0.100-preview.5.26268.112 + 11.0.0-preview.5.26268.112 + 11.0.100-preview.5.26268.112 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 016bdc2d259..1e0730c4507 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 3a62cc842c76761d4742f1d103892f19fd06dd3a + c5d1f734662eb718e7431a4e679a29e47c380f04 diff --git a/global.json b/global.json index 8e26b42e531..10c0e939344 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26266.103" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26266.103" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26268.112" } } From 52896c3a8dfc8af93e00ba3d834182d7be29ab7b Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 19 May 2026 02:03:06 +0000 Subject: [PATCH 16/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 10c0e939344..2e53cbf3695 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26266.103", + "version": "11.0.100-preview.5.26268.112", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26266.103" + "dotnet": "11.0.100-preview.5.26268.112" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26268.112" From b7939ca4384350c189ac8fcce346e8f750884faf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 20 May 2026 02:02:34 +0000 Subject: [PATCH 17/43] Update dependencies from https://github.com/dotnet/dotnet build 20260519.8 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26269.108 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26269.108 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26269.108 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26269.108 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 7cc683c02a1..a4bf9e4d5f1 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26268.112 - 11.0.0-beta.26268.112 - 0.11.5-preview.26268.112 - 11.0.0-beta.26268.112 - 11.0.0-preview.5.26268.112 - 11.0.0-preview.5.26268.112 - 11.0.0-preview.5.26268.112 - 11.0.100-preview.5.26268.112 - 11.0.0-preview.5.26268.112 - 11.0.100-preview.5.26268.112 + 11.0.0-beta.26269.108 + 11.0.0-beta.26269.108 + 0.11.5-preview.26269.108 + 11.0.0-beta.26269.108 + 11.0.0-preview.5.26269.108 + 11.0.0-preview.5.26269.108 + 11.0.0-preview.5.26269.108 + 11.0.100-preview.5.26269.108 + 11.0.0-preview.5.26269.108 + 11.0.100-preview.5.26269.108 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1e0730c4507..b1afbe3c6f0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - c5d1f734662eb718e7431a4e679a29e47c380f04 + 48eb45384d29585a3476284ae7ccac857f21a2a3 diff --git a/global.json b/global.json index 2e53cbf3695..745403f72cb 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26268.112" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26268.112" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26269.108" } } From a10d2183e68dba2a13f8f2cd9d3dfbb13524e08c Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 20 May 2026 09:56:36 +0200 Subject: [PATCH 18/43] Update global.json. --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 745403f72cb..f8f72641622 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26268.112", + "version": "11.0.100-preview.5.26269.108", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26268.112" + "dotnet": "11.0.100-preview.5.26269.108" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26269.108" From 79575ad461694d1f05e7b3ecff6cae48af6e6e79 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 21 May 2026 02:02:35 +0000 Subject: [PATCH 19/43] Update dependencies from https://github.com/dotnet/dotnet build 20260519.19 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26269.119 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26269.119 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26269.119 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26269.119 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index a4bf9e4d5f1..3ef36b5ff7e 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26269.108 - 11.0.0-beta.26269.108 - 0.11.5-preview.26269.108 - 11.0.0-beta.26269.108 - 11.0.0-preview.5.26269.108 - 11.0.0-preview.5.26269.108 - 11.0.0-preview.5.26269.108 - 11.0.100-preview.5.26269.108 - 11.0.0-preview.5.26269.108 - 11.0.100-preview.5.26269.108 + 11.0.0-beta.26269.119 + 11.0.0-beta.26269.119 + 0.11.5-preview.26269.119 + 11.0.0-beta.26269.119 + 11.0.0-preview.5.26269.119 + 11.0.0-preview.5.26269.119 + 11.0.0-preview.5.26269.119 + 11.0.100-preview.5.26269.119 + 11.0.0-preview.5.26269.119 + 11.0.100-preview.5.26269.119 26.0.11017 26.4.10261 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b1afbe3c6f0..fee7131f41e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 48eb45384d29585a3476284ae7ccac857f21a2a3 + 85afae000275066ce60df20227f736154bf172ab diff --git a/global.json b/global.json index f8f72641622..9911491423f 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26269.108" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26269.108" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26269.119" } } From c3794be9a06be46f5cdfbf22161c48fa70e05e5a Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Thu, 21 May 2026 08:51:27 +0200 Subject: [PATCH 20/43] Bump global.json. --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 9911491423f..f330cf169d6 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26269.108", + "version": "11.0.100-preview.5.26269.119", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26269.108" + "dotnet": "11.0.100-preview.5.26269.119" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26269.119" From ad000fe6b01401b1a89df4750de8b3f7f14522ea Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 23 May 2026 02:02:47 +0000 Subject: [PATCH 21/43] Update dependencies from https://github.com/dotnet/dotnet build 20260522.1 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26272.101 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26272.101 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26272.101 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26272.101 --- NuGet.config | 3 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 4 files changed, 31 insertions(+), 34 deletions(-) diff --git a/NuGet.config b/NuGet.config index 02af4534912..a37ee5395fb 100644 --- a/NuGet.config +++ b/NuGet.config @@ -10,9 +10,6 @@ - - - diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 33ae364976e..db28dc300f0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26269.119 - 11.0.0-beta.26269.119 - 0.11.5-preview.26269.119 - 11.0.0-beta.26269.119 - 11.0.0-preview.5.26269.119 - 11.0.0-preview.5.26269.119 - 11.0.0-preview.5.26269.119 - 11.0.100-preview.5.26269.119 - 11.0.0-preview.5.26269.119 - 11.0.100-preview.5.26269.119 + 11.0.0-beta.26272.101 + 11.0.0-beta.26272.101 + 0.11.5-preview.26272.101 + 11.0.0-beta.26272.101 + 11.0.0-preview.5.26272.101 + 11.0.0-preview.5.26272.101 + 11.0.0-preview.5.26272.101 + 11.0.100-preview.5.26272.101 + 11.0.0-preview.5.26272.101 + 11.0.100-preview.5.26272.101 26.0.11017 26.5.10280 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b6a9db23e6d..5a35a384e33 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 85afae000275066ce60df20227f736154bf172ab + 6fa530d10e7077f6e8ba7620f668d46727fe955d diff --git a/global.json b/global.json index f330cf169d6..99bd8b61e97 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26269.119" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26269.119" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26272.101" } } From 6973c8251a40154c2f93d1295fc51e8ccbd22431 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 23 May 2026 02:03:35 +0000 Subject: [PATCH 22/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 99bd8b61e97..cffffee4573 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26269.119", + "version": "11.0.100-preview.5.26272.101", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26269.119" + "dotnet": "11.0.100-preview.5.26272.101" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26272.101" From bb57913a9215be570118c6e52e8482cfcce1877b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 24 May 2026 02:02:08 +0000 Subject: [PATCH 23/43] Update dependencies from https://github.com/dotnet/dotnet build 20260522.12 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26272.112 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26272.112 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26272.112 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26272.112 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index db28dc300f0..067986c7766 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26272.101 - 11.0.0-beta.26272.101 - 0.11.5-preview.26272.101 - 11.0.0-beta.26272.101 - 11.0.0-preview.5.26272.101 - 11.0.0-preview.5.26272.101 - 11.0.0-preview.5.26272.101 - 11.0.100-preview.5.26272.101 - 11.0.0-preview.5.26272.101 - 11.0.100-preview.5.26272.101 + 11.0.0-beta.26272.112 + 11.0.0-beta.26272.112 + 0.11.5-preview.26272.112 + 11.0.0-beta.26272.112 + 11.0.0-preview.5.26272.112 + 11.0.0-preview.5.26272.112 + 11.0.0-preview.5.26272.112 + 11.0.100-preview.5.26272.112 + 11.0.0-preview.5.26272.112 + 11.0.100-preview.5.26272.112 26.0.11017 26.5.10280 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5a35a384e33..630cdaf10a7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 6fa530d10e7077f6e8ba7620f668d46727fe955d + 85ca690954a6f5e988d523dec249b57b84d1ad0d diff --git a/global.json b/global.json index cffffee4573..cdf311b31f0 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26272.101" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26272.101" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26272.112" } } From 28af61a4883746116c3ded0e1aab65760510dec2 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 24 May 2026 02:02:50 +0000 Subject: [PATCH 24/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index cdf311b31f0..890114a7489 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26272.101", + "version": "11.0.100-preview.5.26272.112", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26272.101" + "dotnet": "11.0.100-preview.5.26272.112" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26272.112" From d3a901f360c696f1d8b0bc6652f38c6e23a6b4c9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 26 May 2026 02:02:36 +0000 Subject: [PATCH 25/43] Update dependencies from https://github.com/dotnet/dotnet build 20260525.1 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26275.101 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26275.101 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26275.101 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26275.101 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 067986c7766..4a9abae8494 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26272.112 - 11.0.0-beta.26272.112 - 0.11.5-preview.26272.112 - 11.0.0-beta.26272.112 - 11.0.0-preview.5.26272.112 - 11.0.0-preview.5.26272.112 - 11.0.0-preview.5.26272.112 - 11.0.100-preview.5.26272.112 - 11.0.0-preview.5.26272.112 - 11.0.100-preview.5.26272.112 + 11.0.0-beta.26275.101 + 11.0.0-beta.26275.101 + 0.11.5-preview.26275.101 + 11.0.0-beta.26275.101 + 11.0.0-preview.5.26275.101 + 11.0.0-preview.5.26275.101 + 11.0.0-preview.5.26275.101 + 11.0.100-preview.5.26275.101 + 11.0.0-preview.5.26275.101 + 11.0.100-preview.5.26275.101 26.0.11017 26.5.10280 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 630cdaf10a7..02ca0c85d2b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 85ca690954a6f5e988d523dec249b57b84d1ad0d + c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 diff --git a/global.json b/global.json index 890114a7489..e7fe4763cff 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26272.112" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26272.112" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26275.101" } } From 2782900895f804d1f540e0977764d9a4339c5043 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 26 May 2026 02:03:20 +0000 Subject: [PATCH 26/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index e7fe4763cff..a2060423c1c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26272.112", + "version": "11.0.100-preview.5.26275.101", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26272.112" + "dotnet": "11.0.100-preview.5.26275.101" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26275.101" From 918b50dbdc61fccfa72f72132bdeb1413eb0655c Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 26 May 2026 18:36:07 +0200 Subject: [PATCH 27/43] Fix SmartEnumTest.AVMediaTypes after ILLink dataflow improvement The ILLink now understands typeof(T).Assembly.GetType(string) patterns (dotnet/runtime#127319), so it preserves types referenced by constant string arguments. Append WorkAroundLinkerHeuristics to break constant folding and prevent the linker from resolving the type names. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- tests/linker/link all/PreserveTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/linker/link all/PreserveTest.cs b/tests/linker/link all/PreserveTest.cs index 19dee363f3a..3547c2e7681 100644 --- a/tests/linker/link all/PreserveTest.cs +++ b/tests/linker/link all/PreserveTest.cs @@ -146,8 +146,8 @@ public void SmartEnumTest () Assert.NotNull (smartExtensions.GetMethod ("GetValue"), "GetValue"); // Unused smart enums and their extensions should be linked away - Assert.IsNull (typeof (NSObject).Assembly.GetType ("AVFoundation.AVMediaTypes"), "AVMediaTypes"); - Assert.IsNull (typeof (NSObject).Assembly.GetType ("AVFoundation.AVMediaTypesExtensions"), "AVMediaTypesExtensions"); + Assert.IsNull (typeof (NSObject).Assembly.GetType ("AVFoundation.AVMediaTypes" + WorkAroundLinkerHeuristics), "AVMediaTypes"); + Assert.IsNull (typeof (NSObject).Assembly.GetType ("AVFoundation.AVMediaTypesExtensions" + WorkAroundLinkerHeuristics), "AVMediaTypesExtensions"); } [Test] From f4c9af1428296f147986724b81c93fab3fea33aa Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 26 May 2026 19:03:46 +0200 Subject: [PATCH 28/43] Fix IsARM64CallingConvention test after ILLink body-stubbing change The new ILLink version more aggressively stubs method bodies that have no remaining callers. On MacCatalyst (TrimMode=partial), after our OptimizeGeneratedCodeStep inlines the GetIsARM64CallingConvention value at all call sites, the linker sees the method has no callers and replaces its body with 'ldnull; throw'. Update the test to accept either outcome: - ldc.i4.X; ret (optimized by our step) - ldnull; throw (linker stubbed after optimization) Both outcomes indicate successful optimization. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- tests/linker/BaseOptimizeGeneratedCodeTest.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/linker/BaseOptimizeGeneratedCodeTest.cs b/tests/linker/BaseOptimizeGeneratedCodeTest.cs index 50d32b49afb..5319b045178 100644 --- a/tests/linker/BaseOptimizeGeneratedCodeTest.cs +++ b/tests/linker/BaseOptimizeGeneratedCodeTest.cs @@ -527,8 +527,15 @@ public void IsARM64CallingConvention () method = typeof (Runtime).GetMethod ("GetIsARM64CallingConvention", BindingFlags.Static | BindingFlags.NonPublic)!; instructions = new ILReader (method); Assert.AreEqual (2, instructions.Count (), "IL Count"); - Assert.That (instructions.Skip (0).First ().OpCode, Is.EqualTo (OpCodes.Ldc_I4_0).Or.EqualTo (OpCodes.Ldc_I4_1), "IL 1"); - Assert.That (instructions.Skip (1).First ().OpCode, Is.EqualTo (OpCodes.Ret), "IL 2"); + // The method body should be either: + // - ldc.i4.X; ret (optimized to a constant by our OptimizeGeneratedCodeStep), or + // - ldnull; throw (the linker stubbed the body after our step inlined the value at all call sites) + Assert.That (instructions.Skip (0).First ().OpCode, + Is.EqualTo (OpCodes.Ldc_I4_0).Or.EqualTo (OpCodes.Ldc_I4_1).Or.EqualTo (OpCodes.Ldnull), "IL 1"); + if (instructions.Skip (0).First ().OpCode == OpCodes.Ldnull) + Assert.That (instructions.Skip (1).First ().OpCode, Is.EqualTo (OpCodes.Throw), "IL 2 (linker-stubbed)"); + else + Assert.That (instructions.Skip (1).First ().OpCode, Is.EqualTo (OpCodes.Ret), "IL 2"); #endif Assert.AreEqual (Runtime.IsARM64CallingConvention, GetIsARM64CallingConventionOptimized (), "Value optimized"); From ee1768b3c4f4394708d2fe4c0a931ac189e4b953 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 27 May 2026 02:03:27 +0000 Subject: [PATCH 29/43] Update dependencies from https://github.com/dotnet/dotnet build 20260526.13 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26276.113 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26276.113 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26276.113 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26276.113 --- eng/Version.Details.props | 22 ++++++------- eng/Version.Details.xml | 40 +++++++++++------------ eng/common/build.sh | 5 --- eng/common/pipeline-logging-functions.ps1 | 2 +- eng/common/templates/steps/vmr-sync.yml | 20 ++++++------ eng/common/tools.ps1 | 31 +++--------------- eng/common/tools.sh | 34 +++---------------- global.json | 2 +- 8 files changed, 53 insertions(+), 103 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index f7ba57b24c1..204209db2a7 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26275.101 - 11.0.0-beta.26275.101 - 0.11.5-preview.26275.101 - 11.0.0-beta.26275.101 - 11.0.0-preview.5.26275.101 - 11.0.0-preview.5.26275.101 - 11.0.0-preview.5.26275.101 - 11.0.100-preview.5.26275.101 - 11.0.0-preview.5.26275.101 - 11.0.100-preview.5.26275.101 + 11.0.0-beta.26276.113 + 11.0.0-beta.26276.113 + 0.11.5-preview.26276.113 + 11.0.0-beta.26276.113 + 11.0.0-preview.5.26276.113 + 11.0.0-preview.5.26276.113 + 11.0.0-preview.5.26276.113 + 11.0.100-preview.5.26276.113 + 11.0.0-preview.5.26276.113 + 11.0.100-preview.5.26276.113 26.0.11017 26.5.10280 @@ -26,7 +26,7 @@ This file should be imported by eng/Versions.props 26.0.11017 26.5.10280 - 11.0.0-prerelease.26264.1 + 11.0.0-prerelease.26217.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 02ca0c85d2b..93d845b1d3a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - c2bf1a1c93c92918d8c8f7a9f46e2f6f6d432401 + 1458981aa05717a57476cbef8ec76f066f70fcb5 diff --git a/eng/common/build.sh b/eng/common/build.sh index 5883e53bcfb..74605d2effd 100644 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -84,7 +84,6 @@ node_reuse=true build_check=false binary_log=false exclude_ci_binary_log=false -pipelines_log=false projects='' configuration='' @@ -118,9 +117,6 @@ while [[ $# -gt 0 ]]; do -excludecibinarylog|-nobl) exclude_ci_binary_log=true ;; - -pipelineslog|-pl) - pipelines_log=true - ;; -restore|-r) restore=true ;; @@ -210,7 +206,6 @@ if [[ -z "$configuration" ]]; then fi if [[ "$ci" == true ]]; then - pipelines_log=true node_reuse=false if [[ "$exclude_ci_binary_log" == false ]]; then binary_log=true diff --git a/eng/common/pipeline-logging-functions.ps1 b/eng/common/pipeline-logging-functions.ps1 index 8e422c561e4..9f85c291708 100644 --- a/eng/common/pipeline-logging-functions.ps1 +++ b/eng/common/pipeline-logging-functions.ps1 @@ -32,7 +32,7 @@ function Write-PipelineTelemetryError { $PSBoundParameters.Remove('Category') | Out-Null if ($Force -Or ((Test-Path variable:ci) -And $ci)) { - $Message = "(NETCORE_ENGINEERING_TELEMETRY=$Category) $Message" + $Message = "($Category) $Message" } $PSBoundParameters.Remove('Message') | Out-Null $PSBoundParameters.Add('Message', $Message) diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml index eb619c50268..cdc6a28ff1f 100644 --- a/eng/common/templates/steps/vmr-sync.yml +++ b/eng/common/templates/steps/vmr-sync.yml @@ -45,11 +45,11 @@ steps: workingDirectory: ${{ parameters.vmrPath }} - script: | - ./eng/common/vmr-sync.sh \ - --vmr ${{ parameters.vmrPath }} \ - --tmp $(Agent.TempDirectory) \ - --azdev-pat '$(dn-bot-all-orgs-code-r)' \ - --ci \ + ./eng/common/vmr-sync.sh \ + --vmr ${{ parameters.vmrPath }} \ + --tmp $(Agent.TempDirectory) \ + --azdev-pat '$(AzdoToken)' \ + --ci \ --debug if [ "$?" -ne 0 ]; then @@ -67,11 +67,11 @@ steps: condition: eq(variables['Agent.OS'], 'Windows_NT') - powershell: | - ./eng/common/vmr-sync.ps1 ` - -vmr ${{ parameters.vmrPath }} ` - -tmp $(Agent.TempDirectory) ` - -azdevPat '$(dn-bot-all-orgs-code-r)' ` - -ci ` + ./eng/common/vmr-sync.ps1 ` + -vmr ${{ parameters.vmrPath }} ` + -tmp $(Agent.TempDirectory) ` + -azdevPat '$(AzdoToken)' ` + -ci ` -debugOutput if ($LASTEXITCODE -ne 0) { diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 0e281df8cae..73157c2634c 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -13,12 +13,6 @@ # Set to true to output binary log from msbuild. Note that emitting binary log slows down the build. [bool]$binaryLog = if (Test-Path variable:binaryLog) { $binaryLog } else { $ci -and !$excludeCIBinarylog } -# Set to true to use the pipelines logger which will enable Azure logging output. -# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md -# This flag is meant as a temporary opt-opt for the feature while validate it across -# our consumers. It will be deleted in the future. -[bool]$pipelinesLog = if (Test-Path variable:pipelinesLog) { $pipelinesLog } else { $ci } - # Turns on machine preparation/clean up code that changes the machine state (e.g. kills build processes). [bool]$prepareMachine = if (Test-Path variable:prepareMachine) { $prepareMachine } else { $false } @@ -753,28 +747,13 @@ function Stop-Processes() { # Terminates the script if the build fails. # function MSBuild() { - if ($pipelinesLog) { - $buildTool = InitializeBuildTool - - if ($ci -and $buildTool.Tool -eq 'dotnet') { - $env:NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS = 20 - $env:NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS = 20 - Write-PipelineSetVariable -Name 'NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS' -Value '20' - Write-PipelineSetVariable -Name 'NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS' -Value '20' - } + if ($ci) { + $env:NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS = 20 + $env:NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS = 20 + Write-PipelineSetVariable -Name 'NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS' -Value '20' + Write-PipelineSetVariable -Name 'NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS' -Value '20' Enable-Nuget-EnhancedRetry - - $toolsetBuildProject = InitializeToolset - $basePath = Split-Path -parent $toolsetBuildProject - $selectedPath = Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll') - - if (-not $selectedPath) { - Write-PipelineTelemetryError -Category 'Build' -Message "Unable to find arcade sdk logger assembly: $selectedPath" - ExitWithExitCode 1 - } - - $args += "/logger:$selectedPath" } MSBuild-Core @args diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 5ff37cfb700..8edf9f5a69c 100644 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -8,16 +8,6 @@ ci=${ci:-false} # Build mode source_build=${source_build:-false} -# Set to true to use the pipelines logger which will enable Azure logging output. -# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md -# This flag is meant as a temporary opt-opt for the feature while validate it across -# our consumers. It will be deleted in the future. -if [[ "$ci" == true ]]; then - pipelines_log=${pipelines_log:-true} -else - pipelines_log=${pipelines_log:-false} -fi - # Build configuration. Common values include 'Debug' and 'Release', but the repository may use other names. configuration=${configuration:-'Debug'} @@ -513,26 +503,12 @@ function DotNet { function MSBuild { local args=( "$@" ) - if [[ "$pipelines_log" == true ]]; then - InitializeBuildTool - InitializeToolset - - if [[ "$ci" == true ]]; then - export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20 - export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 - Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" - Write-PipelineSetVariable -name "NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS" -value "20" - fi - - local toolset_dir="${_InitializeToolset%/*}" - local selectedPath="$toolset_dir/net/Microsoft.DotNet.ArcadeLogging.dll" - - if [[ -z "$selectedPath" ]]; then - Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly: $selectedPath" - ExitWithExitCode 1 - fi - args+=( "-logger:$selectedPath" ) + if [[ "$ci" == true ]]; then + export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20 + export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 + Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" + Write-PipelineSetVariable -name "NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS" -value "20" fi MSBuild-Core "${args[@]}" diff --git a/global.json b/global.json index a2060423c1c..e0f2c35e648 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26275.101" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26275.101" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26276.113" } } From 3ff8dead0ab9c8f6936975376a07599754122fc8 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 27 May 2026 02:04:13 +0000 Subject: [PATCH 30/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index e0f2c35e648..bae257f63f8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26275.101", + "version": "11.0.100-preview.5.26276.113", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26275.101" + "dotnet": "11.0.100-preview.5.26276.113" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26276.113" From d794c37271d1de094a02a41c25408ad43197bbdb Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 27 May 2026 08:01:51 +0200 Subject: [PATCH 31/43] Fix TestRuntime.IsLinkAny after ILLink dataflow improvement The new ILLink (dotnet/runtime#127319) understands the pattern typeof(T).Assembly.GetType("string") and preserves referenced types. This caused IsLinkAny to incorrectly return false because the sentinel types (System.Action`14, System.DBNull, etc.) were now preserved by the linker's dataflow analysis. Fix by appending a runtime-computed empty string (WorkAroundLinkerHeuristics) to break the linker's constant-string resolution. This is the same approach used in PreserveTest.cs for the SmartEnumTest.AVMediaTypes fix. This fixes both ProtocolsTrimmedAway and GetConstant test failures in monotouch-test with managed-static-registrar on MacCatalyst. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- tests/common/TestRuntime.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/common/TestRuntime.cs b/tests/common/TestRuntime.cs index 68ab6699c66..c5976945d30 100644 --- a/tests/common/TestRuntime.cs +++ b/tests/common/TestRuntime.cs @@ -1587,7 +1587,9 @@ public static bool IsLinkAny { }; link_any = false; foreach (var uncommonType in uncommonTypes) { - link_any = typeof (int).Assembly.GetType (uncommonType) is null; + // Append WorkAroundLinkerHeuristics to prevent the linker from resolving the type name + // via its typeof(T).Assembly.GetType(string) dataflow analysis (dotnet/runtime#127319). + link_any = typeof (int).Assembly.GetType (uncommonType + WorkAroundLinkerHeuristics) is null; if (link_any == true) break; } @@ -1596,6 +1598,12 @@ public static bool IsLinkAny { } } + // Returns "" at runtime, but the linker can't constant-fold this, which prevents + // its dataflow analysis from resolving type names passed to Assembly.GetType. + [MethodImpl (MethodImplOptions.NoInlining)] + static string GetEmptyString () => string.Intern (""); + static string WorkAroundLinkerHeuristics => GetEmptyString (); + public static bool IsOptimizeAll { get { #if OPTIMIZEALL From 4473e3e5288d5f842712eb7b44f2b87a29350b0c Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 25 May 2026 11:28:00 +0200 Subject: [PATCH 32/43] [devops] Remove the fix to avoid using a leaked GitHub ssh key. (#25504) The current script breaks the build: + ssh-keygen -R github.com Cannot stat /Users/builder/.ssh/known_hosts: No such file or directory ##[error]Bash exited with code '255'. The script was added over three years ago, and all our bots have been re-imaged multiple times since then, thus this isn't an issue anymore. So just remove the script. --- .../automation/scripts/bash/fix-github-ssh-key.sh | 10 ---------- tools/devops/automation/templates/common/setup.yml | 3 --- 2 files changed, 13 deletions(-) delete mode 100755 tools/devops/automation/scripts/bash/fix-github-ssh-key.sh diff --git a/tools/devops/automation/scripts/bash/fix-github-ssh-key.sh b/tools/devops/automation/scripts/bash/fix-github-ssh-key.sh deleted file mode 100755 index a603c99bc60..00000000000 --- a/tools/devops/automation/scripts/bash/fix-github-ssh-key.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -ex - -# ensure that we do remove the old ssh key from github which was leaked: https://blog.gitguardian.com/github-exposed-private-ssh-key/ - -ssh-keygen -R github.com -{ - echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" - echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=" - echo "github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=" -} >> ~/.ssh/known_hosts diff --git a/tools/devops/automation/templates/common/setup.yml b/tools/devops/automation/templates/common/setup.yml index a713adac859..a80833941c2 100644 --- a/tools/devops/automation/templates/common/setup.yml +++ b/tools/devops/automation/templates/common/setup.yml @@ -22,9 +22,6 @@ steps: name: disableCodeQLOnArm64 condition: and(succeeded(), eq('${{ parameters.disableCodeQL }}', 'true')) -- bash: $(Build.SourcesDirectory)/$(BUILD_REPOSITORY_TITLE)/tools/devops/automation/scripts/bash/fix-github-ssh-key.sh - displayName: 'Fix GitHub SSH host key' - - pwsh: '& "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY/$Env:BUILD_REPOSITORY_TITLE/tools/devops/automation/scripts/show_bot_info.ps1"' displayName: 'Show Bot Info' From 5b4d46d53522d10455f42213132732c5f9569719 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 28 May 2026 02:03:02 +0000 Subject: [PATCH 33/43] Update dependencies from https://github.com/dotnet/dotnet build 20260527.11 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.6.26277.111 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26277.111 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26277.111 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.6.26277.111 --- eng/Version.Details.props | 20 +- eng/Version.Details.xml | 40 ++-- eng/common/build.ps1 | 20 +- eng/common/build.sh | 19 +- .../core-templates/job/helix-job-monitor.yml | 217 ++++++++++++++++++ .../core-templates/steps/publish-logs.yml | 1 - .../steps/source-index-stage1-publish.yml | 8 +- eng/common/cross/build-rootfs.sh | 4 +- eng/common/cross/install-debs.py | 13 +- global.json | 2 +- 10 files changed, 303 insertions(+), 41 deletions(-) create mode 100644 eng/common/core-templates/job/helix-job-monitor.yml diff --git a/eng/Version.Details.props b/eng/Version.Details.props index d96a0c190ce..00b5df61d44 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26276.113 - 11.0.0-beta.26276.113 - 0.11.5-preview.26276.113 - 11.0.0-beta.26276.113 - 11.0.0-preview.5.26276.113 - 11.0.0-preview.5.26276.113 - 11.0.0-preview.5.26276.113 - 11.0.100-preview.5.26276.113 - 11.0.0-preview.5.26276.113 - 11.0.100-preview.5.26276.113 + 11.0.0-beta.26277.111 + 11.0.0-beta.26277.111 + 0.11.5-preview.26277.111 + 11.0.0-beta.26277.111 + 11.0.0-preview.6.26277.111 + 11.0.0-preview.6.26277.111 + 11.0.0-preview.6.26277.111 + 11.0.100-preview.6.26277.111 + 11.0.0-preview.6.26277.111 + 11.0.100-preview.6.26277.111 26.0.11017 26.5.10288 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9c416d10f97..be6b1868b31 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 1458981aa05717a57476cbef8ec76f066f70fcb5 + 6ca055abbe0f7c50651e7768c3f466ef07907dc8 diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 18397a60eb8..4b4f6b0923f 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -24,6 +24,7 @@ Param( [switch][Alias('pb')]$productBuild, [switch]$fromVMR, [switch][Alias('bl')]$binaryLog, + [string][Alias('bln')]$binaryLogName = '', [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, [switch] $prepareMachine, @@ -46,6 +47,7 @@ function Print-Usage() { Write-Host " -platform Platform configuration: 'x86', 'x64' or any valid Platform value to pass to msbuild" Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" Write-Host " -binaryLog Output binary log (short: -bl)" + Write-Host " -binaryLogName Binary log file name or path; implies -binaryLog (short: -bln)" Write-Host " -help Print help and exit" Write-Host "" @@ -102,7 +104,19 @@ function Build { $toolsetBuildProj = InitializeToolset InitializeCustomToolset - $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' } + $bl = '' + if ($binaryLog) { + $binaryLogPath = if ([string]::IsNullOrEmpty($binaryLogName)) { + Join-Path $LogDir 'Build.binlog' + } elseif ([System.IO.Path]::IsPathRooted($binaryLogName)) { + $binaryLogName + } else { + Join-Path $LogDir $binaryLogName + } + + Create-Directory (Split-Path -Parent $binaryLogPath) + $bl = '/bl:' + $binaryLogPath + } $platformArg = if ($platform) { "/p:Platform=$platform" } else { '' } $check = if ($buildCheck) { '/check' } else { '' } @@ -162,6 +176,10 @@ try { $nodeReuse = $false } + if (-not [string]::IsNullOrEmpty($binaryLogName)) { + $binaryLog = $true + } + if ($nativeToolsOnMachine) { $env:NativeToolsOnMachine = $true } diff --git a/eng/common/build.sh b/eng/common/build.sh index 74605d2effd..719ee4b5874 100644 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -13,6 +13,7 @@ usage() echo " --configuration Build configuration: 'Debug' or 'Release' (short: -c)" echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" echo " --binaryLog Create MSBuild binary log (short: -bl)" + echo " --binaryLogName Binary log file name or path; implies --binaryLog (short: -bln)" echo " --help Print help and exit (short: -h)" echo "" @@ -83,6 +84,7 @@ warn_not_as_error='' node_reuse=true build_check=false binary_log=false +binary_log_name='' exclude_ci_binary_log=false projects='' @@ -114,6 +116,11 @@ while [[ $# -gt 0 ]]; do -binarylog|-bl) binary_log=true ;; + -binarylogname|-bln) + binary_log=true + binary_log_name=$2 + shift + ;; -excludecibinarylog|-nobl) exclude_ci_binary_log=true ;; @@ -232,7 +239,17 @@ function Build { local bl="" if [[ "$binary_log" == true ]]; then - bl="/bl:\"$log_dir/Build.binlog\"" + local binary_log_path="" + if [[ -z "$binary_log_name" ]]; then + binary_log_path="$log_dir/Build.binlog" + elif [[ "$binary_log_name" = /* ]]; then + binary_log_path="$binary_log_name" + else + binary_log_path="$log_dir/$binary_log_name" + fi + + mkdir -p "$(dirname "$binary_log_path")" + bl="/bl:\"$binary_log_path\"" fi local check="" diff --git a/eng/common/core-templates/job/helix-job-monitor.yml b/eng/common/core-templates/job/helix-job-monitor.yml new file mode 100644 index 00000000000..767450da2fc --- /dev/null +++ b/eng/common/core-templates/job/helix-job-monitor.yml @@ -0,0 +1,217 @@ +parameters: +# Maximum run time of the monitor job in minutes. Also used for --max-wait-minutes. +- name: timeoutInMinutes + type: number + default: 360 + +# Owner segment of the source repository (e.g. 'dotnet' for 'dotnet/runtime') passed via --organization. +# Defaults to the owner segment of BUILD_REPOSITORY_NAME when empty. +- name: organization + type: string + default: '' + +# Name of the source repository (e.g. 'runtime' for 'dotnet/runtime') passed via --repository. +# Defaults to the repo segment of BUILD_REPOSITORY_NAME when empty. +- name: repository + type: string + default: '' + +# Optional dependency list for the generated job. +- name: dependsOn + type: object + default: [] + +# Optional condition for the generated job. +- name: condition + type: string + default: '' + +# NuGet package id of the Helix job monitor tool. +- name: toolPackageId + type: string + default: Microsoft.DotNet.Helix.JobMonitor + +# Console command exposed by the installed tool package. +- name: toolCommand + type: string + default: dotnet-helix-job-monitor + +# Optional explicit tool version. Only honored when 'toolNupkgArtifactName' is set; in the +# default code path the version is taken from the consuming repo's .config/dotnet-tools.json. +- name: toolVersion + type: string + default: '' + +# Base URI for the Helix service (--helix-base-uri). +- name: helixBaseUri + type: string + default: https://helix.dot.net/ + +# Helix API access token forwarded to the tool via the HELIX_ACCESSTOKEN environment variable. +- name: helixAccessToken + type: string + default: '' + +# Polling interval in seconds (--polling-interval-seconds). +- name: pollingIntervalSeconds + type: number + default: 30 + +# Advanced: optional pipeline artifact (produced earlier in this run) that contains the tool +# nupkg. When set, the artifact is downloaded and the tool is installed from the nupkg into +# a local tool-path; this bypasses the repo's .config/dotnet-tools.json manifest and is +# primarily intended for the Arcade repository itself, where the Helix job monitor tool is +# built in the same pipeline that runs this template. +# +# When this parameter is empty (the default), the consuming repository must declare the tool +# in its .config/dotnet-tools.json manifest (alongside other local .NET tools); the template +# will check out the repo and run 'dotnet tool restore' to install the version pinned there. +- name: toolNupkgArtifactName + type: string + default: '' + +# Advanced: sub-path within the downloaded artifact where the tool nupkg is located. Defaults +# to the standard Arcade non-shipping packages location for a Release build (relative to the +# pipeline artifact root, which is itself the build's 'artifacts' directory). +- name: toolNupkgArtifactSubPath + type: string + default: 'packages/Release/NonShipping' + +jobs: +- job: HelixJobMonitor + displayName: Monitor Helix Jobs + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + ${{ if ne(length(parameters.dependsOn), 0) }}: + dependsOn: ${{ parameters.dependsOn }} + ${{ if ne(parameters.condition, '') }}: + condition: ${{ parameters.condition }} + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + demands: ImageOverride -equals build.azurelinux.3.amd64.open + ${{ else }}: + name: $(DncEngInternalBuildPool) + demands: ImageOverride -equals build.azurelinux.3.amd64 + steps: + - checkout: self + fetchDepth: 1 + + - ${{ if ne(parameters.toolNupkgArtifactName, '') }}: + - task: DownloadPipelineArtifact@2 + displayName: Download Helix Job Monitor artifact + inputs: + buildType: current + artifactName: ${{ parameters.toolNupkgArtifactName }} + itemPattern: '${{ parameters.toolNupkgArtifactSubPath }}/${{ parameters.toolPackageId }}.*.nupkg' + targetPath: $(Agent.TempDirectory)/helix-job-monitor-nupkg + + - bash: | + set -euo pipefail + + toolPath="$AGENT_TEMPDIRECTORY/helix-job-monitor-tool" + mkdir -p "$toolPath" + + packageId='${{ parameters.toolPackageId }}' + toolVersion='${{ parameters.toolVersion }}' + nupkgArtifactSubPath='${{ parameters.toolNupkgArtifactSubPath }}' + nupkgDir="$AGENT_TEMPDIRECTORY/helix-job-monitor-nupkg/$nupkgArtifactSubPath" + + if [ ! -d "$nupkgDir" ]; then + echo "Expected nupkg directory '$nupkgDir' was not produced by the artifact download." >&2 + exit 1 + fi + + nupkg=$(find "$nupkgDir" -maxdepth 1 -type f -name "$packageId.*.nupkg" | head -n 1) + if [ -z "$nupkg" ]; then + echo "No '$packageId.*.nupkg' found in '$nupkgDir'." >&2 + exit 1 + fi + + # Derive the version from the nupkg filename so the local package is selected + # deterministically instead of resolving against any other configured feed. + nupkgBase=$(basename "$nupkg" .nupkg) + derivedVersion="${nupkgBase#${packageId}.}" + if [ -z "$toolVersion" ]; then + toolVersion="$derivedVersion" + fi + + echo "Using locally built '$packageId' version '$toolVersion' from '$nupkgDir'." + + # Create a minimal NuGet.config that only references the local nupkg directory. + # This avoids conflicts with the repo's package source mapping which blocks --add-source. + toolNugetConfig="$AGENT_TEMPDIRECTORY/helix-job-monitor-nuget.config" + printf '\n\n \n \n \n \n\n' "$nupkgDir" > "$toolNugetConfig" + + pushd "$(Build.SourcesDirectory)" > /dev/null + ./eng/common/dotnet.sh tool install \ + --tool-path "$toolPath" "$packageId" \ + --version "$toolVersion" \ + --configfile "$toolNugetConfig" + + # Locate the tool DLL so the run step can invoke it via ./eng/common/dotnet.sh exec. + toolDll=$(find "$toolPath/.store" -path '*/tools/*/any/*.deps.json' -type f | head -n 1) + toolDll="${toolDll%.deps.json}.dll" + if [ ! -f "$toolDll" ]; then + echo "Could not find tool DLL in '$toolPath/.store'." >&2 + exit 1 + fi + + echo "Tool DLL: $toolDll" + echo "##vso[task.setvariable variable=HelixJobMonitorDll]$toolDll" + displayName: Install Helix Job Monitor + + - ${{ else }}: + - bash: ./eng/common/dotnet.sh tool restore + displayName: Restore Helix Job Monitor + + - bash: | + set -euo pipefail + + toolArgs=( + --helix-base-uri '${{ parameters.helixBaseUri }}' + --polling-interval-seconds '${{ parameters.pollingIntervalSeconds }}' + --max-wait-minutes "$((${{ parameters.timeoutInMinutes }} - 2))" # Set the tool's timeout slightly lower than the Azure DevOps job timeout to allow it to exit gracefully. + --stage-name '$(System.StageName)' + ) + + organization='${{ parameters.organization }}' + repository='${{ parameters.repository }}' + + # Fall back to Azure DevOps-provided environment variables when the caller did not + # supply organization / repository explicitly. BUILD_REPOSITORY_NAME is typically + # 'owner/repo' for GitHub-backed builds. + if [ -z "$organization" ] || [ -z "$repository" ]; then + buildRepoName="${BUILD_REPOSITORY_NAME:-}" + if [ -n "$buildRepoName" ] && [[ "$buildRepoName" == */* ]]; then + repoOwner="${buildRepoName%%/*}" + repoName="${buildRepoName#*/}" + if [ -z "$organization" ]; then organization="$repoOwner"; fi + if [ -z "$repository" ]; then repository="$repoName"; fi + fi + fi + + if [ -n "$organization" ]; then toolArgs+=( --organization "$organization" ); fi + if [ -n "$repository" ]; then toolArgs+=( --repository "$repository" ); fi + + # Build.Reason and Build.SourceBranch are required to derive the Helix source filter + # the same way the Helix SDK submitter does (PR -> 'pr', internal -> 'official', + # otherwise -> 'ci'). Without these, manually-queued / scheduled / CI builds would + # be looked up under the wrong source prefix and find zero jobs. + toolArgs+=( --build-reason "$(Build.Reason)" ) + toolArgs+=( --source-branch "$(Build.SourceBranch)" ) + + if [ -n '${{ parameters.toolNupkgArtifactName }}' ]; then + # Tool was installed from a local nupkg; run the DLL via the repo-local dotnet. + export DOTNET_ROOT="$(Build.SourcesDirectory)/.dotnet" + ./eng/common/dotnet.sh exec "$(HelixJobMonitorDll)" "${toolArgs[@]}" + else + # Tool was restored from the local .config/dotnet-tools.json manifest; invoke it + # through the manifest from the repo root. + pushd "$BUILD_SOURCESDIRECTORY" > /dev/null + trap 'popd > /dev/null' EXIT + ./eng/common/dotnet.sh tool run '${{ parameters.toolCommand }}' -- "${toolArgs[@]}" + fi + displayName: Monitor Helix Jobs + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + HELIX_ACCESSTOKEN: ${{ parameters.helixAccessToken }} diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 5fc099a1143..648e6cfb115 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -33,7 +33,6 @@ steps: '$(publishing-dnceng-devdiv-code-r-build-re)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' - '$(dnceng-symbol-server-pat)' '$(dn-bot-all-orgs-build-rw-code-rw)' '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml index 3ad83b8c307..fdca622357f 100644 --- a/eng/common/core-templates/steps/source-index-stage1-publish.yml +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -1,15 +1,15 @@ parameters: - sourceIndexUploadPackageVersion: 2.0.0-20250906.1 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250906.1 + sourceIndexUploadPackageVersion: 2.0.0-20260521.2 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20260521.2 sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json binlogPath: artifacts/log/Debug/Build.binlog steps: - task: UseDotNet@2 - displayName: "Source Index: Use .NET 9 SDK" + displayName: "Source Index: Use .NET 10 SDK" inputs: packageType: sdk - version: 9.0.x + version: 10.0.x installationPath: $(Agent.TempDirectory)/dotnet workingDirectory: $(Agent.TempDirectory) diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index cef5d2d6716..f06854ccc18 100644 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -76,7 +76,7 @@ __AlpinePackages+=" openssl-dev" __AlpinePackages+=" zlib-dev" __FreeBSDBase="13.5-RELEASE" -__FreeBSDPkg="1.21.3" +__FreeBSDPkg="2.7.5" __FreeBSDABI="13" __FreeBSDPackages="libunwind" __FreeBSDPackages+=" icu" @@ -577,7 +577,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then ./autogen.sh && ./configure --prefix="$__RootfsDir"/host && make -j "$JOBS" && make install rm -rf "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}" # install packages we need. - INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf update + INSTALL_AS_USER=$(whoami) IGNORE_OSVERSION=yes "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf update # shellcheck disable=SC2086 INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages elif [[ "$__CodeName" == "openbsd" ]]; then diff --git a/eng/common/cross/install-debs.py b/eng/common/cross/install-debs.py index 100c4378da3..20ca770a1e2 100644 --- a/eng/common/cross/install-debs.py +++ b/eng/common/cross/install-debs.py @@ -328,7 +328,18 @@ def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): raise ValueError(f"Unsupported compression format: {file_extension}") with tarfile.open(tar_file_path, mode) as tar: - tar.extractall(path=extract_dir, filter='tar') + tar.extractall(path=extract_dir, filter=_rootfs_extraction_filter) + +def _rootfs_extraction_filter(member, dest_path): + """Tarfile extraction filter based on the 'data' filter that additionally + rewrites absolute-target symlinks/hardlinks into rootfs-relative paths. + """ + if (member.issym() or member.islnk()) and os.path.isabs(member.linkname): + link_dir = os.path.dirname(member.name) + new_linkname = os.path.relpath(member.linkname.lstrip('/'), + start=link_dir or '.') + member = member.replace(linkname=new_linkname, deep=False) + return tarfile.data_filter(member, dest_path) def finalize_setup(rootfsdir): lib_dir = os.path.join(rootfsdir, 'lib') diff --git a/global.json b/global.json index bae257f63f8..575acc15efb 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.5.26276.113" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26276.113" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26277.111" } } From 5a554854b98fbde8353d5700bf126b7547660762 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 28 May 2026 02:03:48 +0000 Subject: [PATCH 34/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 575acc15efb..d620fb9caf8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.5.26276.113", + "version": "11.0.100-preview.6.26277.111", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.5.26276.113" + "dotnet": "11.0.100-preview.6.26277.111" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26277.111" From c6fabd7f3370a2f45c8d3c1e09fa990a774d7fc0 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Thu, 28 May 2026 19:02:50 +0200 Subject: [PATCH 35/43] [net11.0] [runtime] Register host_runtime_contract callbacks so CoreCLR finds System.Private.CoreLib.dll (#25562) ### Description When CoreCLR starts, AssemblyBinderCommon::BindToSystem loads System.Private.CoreLib.dll. It first looks next to libcoreclr, and if that fails it runs a fallback path. In .NET 11 preview 5, dotnet/runtime#128278 changed the fallback to read CoreLib from the single-file bundle's extraction directory, and gated it on Bundle::AppIsBundle() && Bundle::AppBundle->HasExtractedFiles(). Those two flags are set from the host. AppIsBundle() requires the host to register a bundle_probe callback on host_runtime_contract, and HasExtractedFiles() requires the host to return a path from the BUNDLE_EXTRACTION_PATH runtime property. The primary lookup fails on Apple mobile device, because libcoreclr ships inside Frameworks/libcoreclr.framework/libcoreclr while System.Private.CoreLib.dll lives at the app bundle root, so CoreLib is never next to libcoreclr. ### Fix Register a no-op bundle_probe and provide BUNDLE_EXTRACTION_PATH with the directory containing System.Private.CoreLib.dll (app bundle root, then .xamarin/), so the gate passes and BindToSystem resolves CoreLib from that directory. Fixes https://github.com/dotnet/macios/issues/25542 --------- Co-authored-by: Milos Kotlar Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Milos Kotlar Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- runtime/runtime.m | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/runtime/runtime.m b/runtime/runtime.m index 74ad2e77af4..86902f2adeb 100644 --- a/runtime/runtime.m +++ b/runtime/runtime.m @@ -2463,6 +2463,55 @@ -(struct NSObjectData*) xamarinGetNSObjectData; return true; } + +// dotnet/runtime#128278 (.NET 11 preview 5) gates the BindToSystem CoreLib fallback on +// Bundle::AppIsBundle () && Bundle::AppBundle->HasExtractedFiles (). Register a no-op +// bundle_probe so AppBundle is non-null, and answer BUNDLE_EXTRACTION_PATH with the +// directory containing System.Private.CoreLib.dll so the fallback finds it. +static bool xamarin_coreclr_bundle_probe (const char *path, int64_t *offset, int64_t *size, int64_t *compressed_size) +{ + return false; +} + +static const char *xamarin_compute_corelib_directory (void) +{ + static char *cached = NULL; + + if (cached) + return cached; + + const char *bundle_path = xamarin_get_bundle_path (); + NSFileManager *manager = [NSFileManager defaultManager]; + NSString *candidates [] = { + [NSString stringWithUTF8String: bundle_path], + [NSString stringWithFormat: @"%s/.xamarin/%s", bundle_path, RUNTIMEIDENTIFIER], + }; + for (size_t i = 0; i < sizeof (candidates) / sizeof (candidates [0]); i++) { + NSString *probe = [candidates [i] stringByAppendingPathComponent: @"System.Private.CoreLib.dll"]; + if ([manager fileExistsAtPath: probe]) { + cached = strdup ([candidates [i] UTF8String]); + break; + } + } + + return cached; +} + +static size_t xamarin_coreclr_get_runtime_property (const char *key, char *value_buffer, size_t value_buffer_size, void *contract_context) +{ + if (strcmp (key, HOST_PROPERTY_BUNDLE_EXTRACTION_PATH) != 0) + return (size_t) -1; + + const char *dir = xamarin_compute_corelib_directory (); + if (dir == NULL) + return (size_t) -1; + + size_t len = strlen (dir); + size_t required = len + 1; // include null terminator + if (value_buffer != NULL && value_buffer_size >= required) + memcpy (value_buffer, dir, required); + return required; +} #endif // defined (CORECLR_RUNTIME) void @@ -2471,6 +2520,8 @@ -(struct NSObjectData*) xamarinGetNSObjectData; #if defined (CORECLR_RUNTIME) struct host_runtime_contract host_contract = { .size = sizeof (struct host_runtime_contract), + .get_runtime_property = &xamarin_coreclr_get_runtime_property, + .bundle_probe = &xamarin_coreclr_bundle_probe, .pinvoke_override = &xamarin_pinvoke_override, .get_native_code_data = &xamarin_get_native_code_data }; From f3c5de87013bf3f4940cb39024adc332599534ec Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 29 May 2026 02:01:41 +0000 Subject: [PATCH 36/43] Update dependencies from https://github.com/dotnet/dotnet build 20260527.16 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.6.26277.116 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26277.116 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26277.116 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.6.26277.116 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 00b5df61d44..5454620557e 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26277.111 - 11.0.0-beta.26277.111 - 0.11.5-preview.26277.111 - 11.0.0-beta.26277.111 - 11.0.0-preview.6.26277.111 - 11.0.0-preview.6.26277.111 - 11.0.0-preview.6.26277.111 - 11.0.100-preview.6.26277.111 - 11.0.0-preview.6.26277.111 - 11.0.100-preview.6.26277.111 + 11.0.0-beta.26277.116 + 11.0.0-beta.26277.116 + 0.11.5-preview.26277.116 + 11.0.0-beta.26277.116 + 11.0.0-preview.6.26277.116 + 11.0.0-preview.6.26277.116 + 11.0.0-preview.6.26277.116 + 11.0.100-preview.6.26277.116 + 11.0.0-preview.6.26277.116 + 11.0.100-preview.6.26277.116 26.0.11017 26.5.10288 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index be6b1868b31..473c0603d49 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 6ca055abbe0f7c50651e7768c3f466ef07907dc8 + 1616fce88662817fb8b76911fb188b56650859a0 diff --git a/global.json b/global.json index d620fb9caf8..c4560516dbf 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.6.26277.111" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26277.111" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26277.116" } } From 180fe01c6a008633b8bb66200c96779333d1c0e7 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 29 May 2026 02:02:32 +0000 Subject: [PATCH 37/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index c4560516dbf..cf6ef7a54d7 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.6.26277.111", + "version": "11.0.100-preview.6.26277.116", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.6.26277.111" + "dotnet": "11.0.100-preview.6.26277.116" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26277.116" From b46a761e432b3a09371715521deb4b321123a616 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 31 May 2026 02:02:36 +0000 Subject: [PATCH 38/43] Update dependencies from https://github.com/dotnet/dotnet build 20260530.3 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.6.26280.103 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26280.103 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26280.103 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.6.26280.103 --- eng/Version.Details.props | 20 +++++----- eng/Version.Details.xml | 40 +++++++++---------- .../core-templates/steps/publish-logs.yml | 1 - eng/common/tools.ps1 | 2 + eng/common/tools.sh | 2 + global.json | 2 +- 6 files changed, 35 insertions(+), 32 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5454620557e..5b42b597542 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26277.116 - 11.0.0-beta.26277.116 - 0.11.5-preview.26277.116 - 11.0.0-beta.26277.116 - 11.0.0-preview.6.26277.116 - 11.0.0-preview.6.26277.116 - 11.0.0-preview.6.26277.116 - 11.0.100-preview.6.26277.116 - 11.0.0-preview.6.26277.116 - 11.0.100-preview.6.26277.116 + 11.0.0-beta.26280.103 + 11.0.0-beta.26280.103 + 0.11.5-preview.26280.103 + 11.0.0-beta.26280.103 + 11.0.0-preview.6.26280.103 + 11.0.0-preview.6.26280.103 + 11.0.0-preview.6.26280.103 + 11.0.100-preview.6.26280.103 + 11.0.0-preview.6.26280.103 + 11.0.100-preview.6.26280.103 26.0.11017 26.5.10288 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 473c0603d49..3ae5173d2d9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - 1616fce88662817fb8b76911fb188b56650859a0 + f39bff9dea48e7e8c9407e770c94e9245e31e878 diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 648e6cfb115..2731e48cce4 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -33,7 +33,6 @@ steps: '$(publishing-dnceng-devdiv-code-r-build-re)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' - '$(dn-bot-all-orgs-build-rw-code-rw)' '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} continueOnError: true diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 73157c2634c..2dd64758ee6 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -748,6 +748,8 @@ function Stop-Processes() { # function MSBuild() { if ($ci) { + InitializeToolset | Out-Null + $env:NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS = 20 $env:NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS = 20 Write-PipelineSetVariable -Name 'NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS' -Value '20' diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 8edf9f5a69c..2a587f1184a 100644 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -505,6 +505,8 @@ function MSBuild { local args=( "$@" ) if [[ "$ci" == true ]]; then + InitializeToolset + export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20 export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" diff --git a/global.json b/global.json index cf6ef7a54d7..704bf370d5c 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.6.26277.116" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26277.116" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26280.103" } } From 88808941d92d55fb54ee27e129884903edbc541a Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 31 May 2026 02:03:22 +0000 Subject: [PATCH 39/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 704bf370d5c..5e332f60bb8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.6.26277.116", + "version": "11.0.100-preview.6.26280.103", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.6.26277.116" + "dotnet": "11.0.100-preview.6.26280.103" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26280.103" From 98a50efb1ed87f9a5e6a15c799b7715bf1652995 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 1 Jun 2026 02:01:39 +0000 Subject: [PATCH 40/43] Update dependencies from https://github.com/dotnet/dotnet build 20260531.2 On relative base path root Microsoft.NET.Runtime.MonoTargets.Sdk , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.6.26281.102 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.SharedFramework.Sdk From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26281.102 Microsoft.DotNet.Cecil From Version 0.11.5-preview.26256.105 -> To Version 0.11.5-preview.26281.102 Microsoft.NET.Sdk , Microsoft.TemplateEngine.Authoring.Tasks From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.6.26281.102 --- eng/Version.Details.props | 20 ++++++++++---------- eng/Version.Details.xml | 40 +++++++++++++++++++-------------------- global.json | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5b42b597542..4cb5b75a230 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props - 11.0.0-beta.26280.103 - 11.0.0-beta.26280.103 - 0.11.5-preview.26280.103 - 11.0.0-beta.26280.103 - 11.0.0-preview.6.26280.103 - 11.0.0-preview.6.26280.103 - 11.0.0-preview.6.26280.103 - 11.0.100-preview.6.26280.103 - 11.0.0-preview.6.26280.103 - 11.0.100-preview.6.26280.103 + 11.0.0-beta.26281.102 + 11.0.0-beta.26281.102 + 0.11.5-preview.26281.102 + 11.0.0-beta.26281.102 + 11.0.0-preview.6.26281.102 + 11.0.0-preview.6.26281.102 + 11.0.0-preview.6.26281.102 + 11.0.100-preview.6.26281.102 + 11.0.0-preview.6.26281.102 + 11.0.100-preview.6.26281.102 26.0.11017 26.5.10288 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3ae5173d2d9..ad8dc65ec3c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,29 +1,29 @@ - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 @@ -61,25 +61,25 @@ - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 https://github.com/dotnet/xharness 866707736d49c2323628744716cda2475b3af9ee - + https://github.com/dotnet/dotnet - f39bff9dea48e7e8c9407e770c94e9245e31e878 + e6542746cf944ff2a1a595edf2af006ef3046784 diff --git a/global.json b/global.json index 5e332f60bb8..ce3b3a31fc7 100644 --- a/global.json +++ b/global.json @@ -11,6 +11,6 @@ "dotnet": "11.0.100-preview.6.26280.103" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26280.103" + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26281.102" } } From 4c849bff74247ba4d7606e5a4bc7f94e51a35643 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 1 Jun 2026 02:02:30 +0000 Subject: [PATCH 41/43] Re-generate global.json for PR #25379: [net11.0] Update dependencies from dotnet/dotnet --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index ce3b3a31fc7..05dd3852fc9 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-preview.6.26280.103", + "version": "11.0.100-preview.6.26281.102", "paths": [ "builds/downloads/dotnet", "$host$" @@ -8,7 +8,7 @@ "errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'." }, "tools": { - "dotnet": "11.0.100-preview.6.26280.103" + "dotnet": "11.0.100-preview.6.26281.102" }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26281.102" From b912e2dac194a04330e10dba0dce1d38d8dc10e6 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 1 Jun 2026 17:33:18 +0200 Subject: [PATCH 42/43] [tests] Fix link sdk tests to correctly recognize release IL patterns. The new ILLink version more aggressively stubs method bodies that have no remaining callers. Update the test to accept either outcome: - ret (old behavior) - ldnull; throw (linker stubbed after optimization) Both outcomes indicate successful release build. --- tests/linker/link sdk/LinkSdkRegressionTest.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/linker/link sdk/LinkSdkRegressionTest.cs b/tests/linker/link sdk/LinkSdkRegressionTest.cs index b75d223ed24..f3ce13c3f0f 100644 --- a/tests/linker/link sdk/LinkSdkRegressionTest.cs +++ b/tests/linker/link sdk/LinkSdkRegressionTest.cs @@ -36,6 +36,7 @@ #if !__TVOS__ using WebKit; #endif +using Linker.Shared; using MonoTests.System.Net.Http; using Xamarin.Utils; @@ -951,18 +952,17 @@ static void CheckILLinkStubbedMethod (MethodInfo? m) // ILLink does not remove the method, but it can "stub" (empty) it if (m is null) throw new InvalidOperationException ("Method not found (null)"); - var mb = m.GetMethodBody (); - if (mb is null) - throw new InvalidOperationException ("GetMethodBody"); - var il = mb.GetILAsByteArray (); - if (il is null) - throw new InvalidOperationException ("GetILAsByteArray"); + var reader = new ILReader (m); + var il = reader.ToArray (); + var actualIL = string.Join ("\n", il.Select (v => v.ToString ().Trim ())); + var releaseRet = "IL_0000 ret"; + var releaseThrow = "IL_0000 ldnull\nIL_0001 throw"; #if DEBUG // means some stuff in addition to the `ret` instruction - Assert.That (il.Length, Is.GreaterThan (1), "il > 1"); + Assert.That (actualIL, Is.Not.EqualTo (releaseRet).And.Not.EqualTo (releaseThrow), $"debug il"); #else // empty means a `ret` instruction (and that's true even if IL is stripped) - Assert.That (il.Length, Is.EqualTo (1), "il == 1"); + Assert.That (actualIL, Is.EqualTo (releaseRet).Or.EqualTo (releaseThrow), $"release il"); #endif } From 544cdb62acad7b33c643207cf4b4f0c5d7b82765 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 1 Jun 2026 18:14:45 +0200 Subject: [PATCH 43/43] [tests] Fix tests after improved linker heuristics. The ILLink now understands typeof(T).Assembly.GetType(string) patterns (dotnet/runtime#127319), so it preserves types referenced by constant string arguments. Append WorkAroundLinkerHeuristics to break constant folding and prevent the linker from resolving the type names. --- tests/monotouch-test/ObjCRuntime/RegistrarTest.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs b/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs index fd82fd56373..ec8ee4b3b24 100644 --- a/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs +++ b/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs @@ -2,6 +2,7 @@ using System.Drawing; using System.Linq; using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Threading; @@ -126,6 +127,12 @@ public void DoIt (_LongNSRange a, out _LongNSRange b, ref _LongNSRange c) } } + // Returns "" at runtime, but the linker can't constant-fold this, which prevents + // its dataflow analysis from resolving type names passed to Assembly.GetType. + [MethodImpl (MethodImplOptions.NoInlining)] + static string GetEmptyString () => string.Intern (""); + static string WorkAroundLinkerHeuristics => GetEmptyString (); + [Test] [UnconditionalSuppressMessage ("Trimming", "IL2026", Justification = "This test verifies linker behavior, and as such any behavioral difference when the trimmer is enabled is exactly what it's looking for.")] public void RegistrarRemoval () @@ -139,8 +146,8 @@ public void RegistrarRemoval () #else var shouldBeRemoved = false; #endif - Assert.That (typeof (NSObject).Assembly.GetType ("Registrar.Registrar") is null, Is.EqualTo (shouldBeRemoved), "Registrar removal"); - Assert.That (typeof (NSObject).Assembly.GetType ("Registrar.DynamicRegistrar") is null, Is.EqualTo (shouldBeRemoved), "DynamicRegistrar removal"); + Assert.That (typeof (NSObject).Assembly.GetType ("Registrar.Registrar" + WorkAroundLinkerHeuristics) is null, Is.EqualTo (shouldBeRemoved), "Registrar removal"); + Assert.That (typeof (NSObject).Assembly.GetType ("Registrar.DynamicRegistrar" + WorkAroundLinkerHeuristics) is null, Is.EqualTo (shouldBeRemoved), "DynamicRegistrar removal"); } #if !MONOMAC