diff options
Diffstat (limited to 'community/dotnet6-build/msbuild_optional-systemconfiguration.patch')
-rw-r--r-- | community/dotnet6-build/msbuild_optional-systemconfiguration.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/community/dotnet6-build/msbuild_optional-systemconfiguration.patch b/community/dotnet6-build/msbuild_optional-systemconfiguration.patch new file mode 100644 index 00000000000..b28c8be6a2e --- /dev/null +++ b/community/dotnet6-build/msbuild_optional-systemconfiguration.patch @@ -0,0 +1,69 @@ +From 26a12cb531161e1fc3d6ec1f2a241e1c516ca775 Mon Sep 17 00:00:00 2001 +Patch-Source: https://src.fedoraproject.org/rpms/dotnet6.0/blob/src/msbuild/rawhide/f/msbuild-no-systemconfiguration.patch +From: Antoine Martin <dev@ayakael.net> +Date: Fri, 21 Oct 2022 14:13:04 -0400 +Subject: [PATCH 1/2] optional-systemconfiguration + +Fix mono-specific runtime crashes running msbuild. CoreCLR does not +load types that are not actually used/invoked at runtime, while mono +does. System.Configuration and System.Security are missing in +source-build builds, which breaks msbuild. + +--- + src/Build/Definition/ProjectCollection.cs | 4 ++++ + src/Build/Definition/ToolsetReader.cs | 8 ++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/src/msbuild/src/Build/Definition/ProjectCollection.cs b/src/msbuild/src/Build/Definition/ProjectCollection.cs +index 8629bd943..6a550e32d 100644 +--- a/src/msbuild/src/Build/Definition/ProjectCollection.cs ++++ b/src/msbuild/src/Build/Definition/ProjectCollection.cs +@@ -1754,7 +1754,11 @@ namespace Microsoft.Build.Evaluation + #if FEATURE_WIN32_REGISTRY + ToolsetRegistryReader registryReader = null, + #endif ++#if FEATURE_SYSTEM_CONFIGURATION + ToolsetConfigurationReader configReader = null ++#else ++ object configReader = null ++#endif + ) + { + _toolsets = new Dictionary<string, Toolset>(StringComparer.OrdinalIgnoreCase); +diff --git a/src/msbuild/src/Build/Definition/ToolsetReader.cs b/src/msbuild/src/Build/Definition/ToolsetReader.cs +index 869b3318e..c6b95d3cf 100644 +--- a/src/msbuild/src/Build/Definition/ToolsetReader.cs ++++ b/src/msbuild/src/Build/Definition/ToolsetReader.cs +@@ -101,7 +101,11 @@ namespace Microsoft.Build.Evaluation + #if FEATURE_WIN32_REGISTRY + ToolsetRegistryReader registryReader, + #endif ++#if FEATURE_SYSTEM_CONFIGURATION + ToolsetConfigurationReader configurationReader, ++#else ++ object _configurationReader, ++#endif + PropertyDictionary<ProjectPropertyInstance> environmentProperties, + PropertyDictionary<ProjectPropertyInstance> globalProperties, + ToolsetDefinitionLocations locations +@@ -120,6 +124,7 @@ namespace Microsoft.Build.Evaluation + + if ((locations & ToolsetDefinitionLocations.ConfigurationFile) == ToolsetDefinitionLocations.ConfigurationFile) + { ++#if FEATURE_SYSTEM_CONFIGURATION + if (configurationReader == null) + { + configurationReader = new ToolsetConfigurationReader(environmentProperties, globalProperties); +@@ -129,6 +134,9 @@ namespace Microsoft.Build.Evaluation + defaultToolsVersionFromConfiguration = configurationReader.ReadToolsets(toolsets, globalProperties, + initialProperties, true /* accumulate properties */, out overrideTasksPathFromConfiguration, + out defaultOverrideToolsVersionFromConfiguration); ++#else ++ throw new InvalidOperationException("ToolsetDefinitionLocations.ConfigurationFile not supported"); ++#endif + } + + string defaultToolsVersionFromRegistry = null; +-- +2.36.3 + |