Resolve source-build patch conflicts

This commit is contained in:
MichaelSimons 2021-10-29 15:40:17 +00:00
parent 3d723365aa
commit eb7ff02c9a
12 changed files with 8 additions and 262 deletions

View file

@ -88,9 +88,7 @@
<Name>$(GitHubRepositoryName)</Name>
<Version>1.0.0</Version>
<ExactVersion>1.0.0</ExactVersion>
<!-- Pin source-build to a specific commit to provide stabilization -->
<!-- <Sha>@(RootRepoCommitSha)</Sha> -->
<Sha>2f7c1a94d6c9f8f9173ebadf2ec2ba512b2b4576</Sha>
<Sha>@(RootRepoCommitSha)</Sha>
<Uri>@(RootRepoUri)</Uri>
<GitCommitCount>@(RootRepoCommitCount)</GitCommitCount>
<SourceBuildRepoName>$(GitHubRepositoryName)</SourceBuildRepoName>

View file

@ -24,9 +24,9 @@ index 37feef5..c5aee85 100644
+ <NoWarn>$(NoWarn);NU1603</NoWarn>
+ </PropertyGroup>
+
<PropertyGroup Condition="'$(DotNetBuildOffline)' == 'true'">
<!--
Arcade has a special version prop for CodeAnalysis.CSharp in GenFacades
<PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
<!--
When building using source-build the process is:
--
2.29.2

View file

@ -1,50 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Davis Goodin <dagood@microsoft.com>
Date: Wed, 20 Oct 2021 16:17:54 -0500
Subject: [PATCH] Fix AppHost pack prebuilt usage in source-build
This avoids downloading a prebuilt apphost pack.
Upstream PR: https://github.com/dotnet/aspnetcore/pull/37672
---
Directory.Build.props | 14 ++++++++++++--
.../src/Microsoft.AspNetCore.App.Ref.csproj | 1 +
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 204df64da7..7280c12748 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -198,8 +198,18 @@
<!-- The location of the local installation of the .NET Core shared framework. -->
<PropertyGroup>
<LocalDotNetRoot>$(RepoRoot).dotnet\</LocalDotNetRoot>
- <!-- Override the SDK default and point to local .dotnet folder. -->
- <NetCoreTargetingPackRoot>$(LocalDotNetRoot)packs\</NetCoreTargetingPackRoot>
+ <!--
+ Override the SDK default and point to local .dotnet folder. This is done to work around
+ limitations in the way the .NET SDK finds shared frameworks and targeting packs. It allows
+ tests to use the shared frameworks and targeting packs that were just built.
+
+ However, source-build needs this to not happen while building projects that rely on the
+ AppHost framework pack. Source-build installs an SDK in a custom location outside this
+ repository, and setting NetCoreTargetingPackRoot to a different location causes source-build
+ to restore the AppHost pack as a prebuilt rather than using the one that's present in the SDK.
+ Source-build doesn't run tests, so the property is simply conditioned out.
+ -->
+ <NetCoreTargetingPackRoot Condition="'$(DotNetBuildFromSource)' != 'true'">$(LocalDotNetRoot)packs\</NetCoreTargetingPackRoot>
</PropertyGroup>
<Import Project="eng\tools\RepoTasks\RepoTasks.tasks" Condition="'$(MSBuildProjectName)' != 'RepoTasks' AND '$(DesignTimeBuild)' != 'true'" />
diff --git a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj
index 0cb7503c04..3a0832ee21 100644
--- a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj
+++ b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj
@@ -211,6 +211,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
<!-- Workaround https://github.com/dotnet/sdk/issues/2910 by copying targeting pack into local installation. -->
<Target Name="_InstallTargetingPackIntoLocalDotNet"
DependsOnTargets="_ResolveTargetingPackContent"
+ Condition="'$(DotNetBuildFromSource)' != 'true'"
Inputs="@(RefPackContent)"
Outputs="@(RefPackContent->'$(LocalInstallationOutputPath)%(PackagePath)%(RecursiveDir)%(FileName)%(Extension)')">
<RemoveDir Directories="$(LocalInstallationOutputPath)" />

View file

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Logan Bussell <36081148+lbussell@users.noreply.github.com>
Date: Wed, 13 Oct 2021 18:26:09 +0000
Subject: [PATCH] fix tlens Mono.Cecil reference
Pull request for applying the patch: https://github.com/dotnet/linker/pull/2317
---
src/tlens/tlens.csproj | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/tlens/tlens.csproj b/src/tlens/tlens.csproj
index 92b3754..e17f9fb 100644
--- a/src/tlens/tlens.csproj
+++ b/src/tlens/tlens.csproj
@@ -10,7 +10,8 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Mono.Cecil" Version="$(MonoCecilVersion)" />
+ <PackageReference Condition="'$(UseCecilPackage)' == 'true'" Include="Mono.Cecil" Version="$(MonoCecilVersion)" />
+ <ProjectReference Condition="'$(UseCecilPackage)' != 'true'" Include="../../external/cecil/Mono.Cecil.csproj" />
</ItemGroup>
</Project>

View file

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Michael Simons <msimons@microsoft.com>
Date: Wed, 20 Oct 2021 14:44:36 +0000
Subject: [PATCH] Exclude Microsoft.DotNet.ApiCompat from source-build
Backport PR: https://github.com/dotnet/linker/pull/2326
---
eng/Tools.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/Tools.props b/eng/Tools.props
index 494d208..7c32ad5 100644
--- a/eng/Tools.props
+++ b/eng/Tools.props
@@ -2,7 +2,7 @@
<!-- This file is an Arcade extension point that specifies additional tools to restore. -->
<ItemGroup>
- <PackageReference Include="Microsoft.DotNet.ApiCompat" Version="$(MicrosoftDotNetApiCompatVersion)" />
+ <PackageReference Include="Microsoft.DotNet.ApiCompat" Version="$(MicrosoftDotNetApiCompatVersion)" Condition=" '$(DotnetBuildFromSource)' != 'true' "/>
</ItemGroup>
</Project>
\ No newline at end of file

View file

@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Michael Simons <msimons@microsoft.com>
Date: Wed, 20 Oct 2021 14:38:14 +0000
Subject: [PATCH 1/2] Upgrade Microsoft.NETFramework.ReferenceAssemblies from
1.0.0 to 1.0.2
Backport PR: https://github.com/dotnet/linker/pull/2326
---
src/ILLink.Tasks/ILLink.Tasks.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/ILLink.Tasks/ILLink.Tasks.csproj
index 0ecf5d1..7501ecb 100644
--- a/src/ILLink.Tasks/ILLink.Tasks.csproj
+++ b/src/ILLink.Tasks/ILLink.Tasks.csproj
@@ -53,6 +53,6 @@
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCoreVersion)" PrivateAssets="All" ExcludeAssets="Runtime" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" Condition=" '$(TargetFramework)' == 'net472' " PrivateAssets="All" Publish="True" />
- <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
+ <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.2" />
</ItemGroup>
</Project>

View file

@ -1,36 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Davis Goodin <dagood@microsoft.com>
Date: Mon, 11 Oct 2021 17:09:14 -0500
Subject: [PATCH] Remove prebuilt jnm2.ReferenceAssemblies.net35
This prebuilt package filled a gap in the official 1.0 version of the .NET
Framework reference assembly packages. The gap has been fixed in later versions
of the official packages. Removal fixes a prebuilt dependency by letting the
repo use the official version of the packges, which are produced by SBRP.
https://github.com/dotnet/msbuild/issues/6935
---
src/StringTools/StringTools.csproj | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/StringTools/StringTools.csproj b/src/StringTools/StringTools.csproj
index fef9909..93a4634 100644
--- a/src/StringTools/StringTools.csproj
+++ b/src/StringTools/StringTools.csproj
@@ -20,17 +20,12 @@
<PropertyGroup Condition="'$(TargetFramework)' == 'net35'">
<AssemblyName>Microsoft.NET.StringTools.net35</AssemblyName>
- <!-- Disable Fx install checks as we're building against jnm2's 3.5 reference assemblies -->
- <BypassFrameworkInstallChecks>true</BypassFrameworkInstallChecks>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'net35'">
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
</ItemGroup>
- <ItemGroup>
- <PackageReference Include="jnm2.ReferenceAssemblies.net35" PrivateAssets="All" />
- </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net35'">
<Compile Remove="SpanBasedStringBuilder.cs" />

View file

@ -34,9 +34,9 @@ index d08e337c5..3b173aee5 100644
--- a/src/Build/Microsoft.Build.csproj
+++ b/src/Build/Microsoft.Build.csproj
@@ -38,8 +38,10 @@
<PackageReference Include="System.Reflection.Metadata" Condition="'$(MonoBuild)' == 'true'" />
</ItemGroup>
<PackageReference Include="Microsoft.IO.Redist" Condition="'$(FeatureMSIORedist)' == 'true'" />
</ItemGroup>
- <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
+ <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' and '$(DotNetBuildFromSource)' != 'true'">
<PackageReference Include="Microsoft.VisualStudio.Setup.Configuration.Interop" />

View file

@ -51,7 +51,7 @@ index 46d30b3bd..635f8bb5c 100644
- <MicrosoftCodeAnalysisExecutableVersion Condition="'$(MicrosoftCodeAnalysisExecutableVersion)' == ''">3.8.0</MicrosoftCodeAnalysisExecutableVersion>
- </PropertyGroup>
<PropertyGroup>
<VersionPrefix>3.3.3</VersionPrefix>
<VersionPrefix>3.3.4</VersionPrefix>
<PreReleaseVersionLabel>beta1</PreReleaseVersionLabel>
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
index c7c28fd9f..e5be9e028 100644

View file

@ -1,29 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Eric Erhardt <eric.erhardt@microsoft.com>
Date: Mon, 18 Oct 2021 15:47:39 -0500
Subject: [PATCH] DotNetHost packages are not created during source-build
The subset `host.pkg` is not producing the DotNetHost* NuGet packages. This is because the "Pack" target is getting invoked on the pkgprojs, but pkgprojs expect the "Build" target to be called. Since the "Pack" target is overriden in the Directory.Build.targets to be empty, no one is calling the "Build" target on the pkgprojs.
In an official build, a later subset `packs.tests` comes through and builds `Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj`, which explicitly calls "Build" on the pkgprojs. So official builds still get these packages produced.
In source-build, we are no longer building the `packs.tests` subset, so the packages are not produced.
See also:
* https://github.com/dotnet/runtime/pull/60575
* https://github.com/dotnet/runtime/pull/60577
---
src/installer/Directory.Build.targets | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/installer/Directory.Build.targets b/src/installer/Directory.Build.targets
index c6e8cf1a140..dccb8277ba7 100644
--- a/src/installer/Directory.Build.targets
+++ b/src/installer/Directory.Build.targets
@@ -15,5 +15,5 @@
<Import Project="..\..\Directory.Build.targets" />
<!-- Provide default targets which can be hooked onto or overridden as necessary -->
- <Target Name="Pack" />
+ <Target Name="Pack" DependsOnTargets="Build" />
</Project>

View file

@ -1,26 +0,0 @@
From 752ab8ab199bd1d99353658cb676a6612508333b Mon Sep 17 00:00:00 2001
From: Michael Simons <msimons@microsoft.com>
Date: Wed, 8 Sep 2021 21:31:01 +0000
Subject: [PATCH] Drop vstest.console netcoreapp2.1 support
Workaround for https://github.com/microsoft/vstest/issues/3044
---
src/vstest.console/vstest.console.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/vstest.console/vstest.console.csproj b/src/vstest.console/vstest.console.csproj
index 1343e6d9..7c555591 100644
--- a/src/vstest.console/vstest.console.csproj
+++ b/src/vstest.console/vstest.console.csproj
@@ -8,7 +8,7 @@
<PropertyGroup>
<AssemblyName>vstest.console</AssemblyName>
<TargetFrameworks>netcoreapp2.1;net451</TargetFrameworks>
- <TargetFrameworks Condition=" '$(DotNetBuildFromSource)' == 'true' ">netcoreapp2.1;net6.0</TargetFrameworks>
+ <TargetFrameworks Condition=" '$(DotNetBuildFromSource)' == 'true' ">net6.0</TargetFrameworks>
<WarningsAsErrors>true</WarningsAsErrors>
<OutputType>Exe</OutputType>
<IsTestProject>false</IsTestProject>
--
2.29.2

View file

@ -1,40 +0,0 @@
From 071dfef93e5431a415bd9298f2ed8aaf9a22524f Mon Sep 17 00:00:00 2001
From: dseefeld <dseefeld@microsoft.com>
Date: Mon, 11 Oct 2021 19:35:15 +0000
Subject: [PATCH] Don't publish for win runtime identifier in source-build
See https://github.com/microsoft/vstest/pull/3096
---
src/testhost.x86/testhost.x86.csproj | 2 +-
src/testhost/testhost.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/testhost.x86/testhost.x86.csproj b/src/testhost.x86/testhost.x86.csproj
index 7eb5cd15..09856522 100644
--- a/src/testhost.x86/testhost.x86.csproj
+++ b/src/testhost.x86/testhost.x86.csproj
@@ -19,7 +19,7 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' != 'netcoreapp2.1' AND '$(TargetFramework)' != 'netcoreapp1.0' AND '$(TargetFramework)' != 'net6.0' ">
- <RuntimeIdentifier>win7-x86</RuntimeIdentifier>
+ <RuntimeIdentifier Condition="'$(DotNetBuildFromSource)' != 'true'">win7-x86</RuntimeIdentifier>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
<TargetName Condition="'$(TargetFramework)' != 'net451'">$(AssemblyName.Replace('.x86', '')).$(TargetFramework).x86</TargetName>
</PropertyGroup>
diff --git a/src/testhost/testhost.csproj b/src/testhost/testhost.csproj
index a780e4e9..ba0fd259 100644
--- a/src/testhost/testhost.csproj
+++ b/src/testhost/testhost.csproj
@@ -16,7 +16,7 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' != 'netcoreapp2.1' AND '$(TargetFramework)' != 'netcoreapp1.0' AND '$(TargetFramework)' != 'net6.0' ">
- <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
+ <RuntimeIdentifier Condition="'$(DotNetBuildFromSource)' != 'true'">win7-x64</RuntimeIdentifier>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
<TargetName Condition="'$(TargetFramework)' != 'net451'">$(AssemblyName).$(TargetFramework)</TargetName>
</PropertyGroup>
--
2.31.1