Please note that the paths in this patch have been manually modified so we can apply it against an already-built tarball. From 9a7d07ab5a163b75a7b82cf8883d32553f34dcdb Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 19 Oct 2022 15:21:40 +0200 Subject: [PATCH] Enabled source-building with mono runtime on any architecture. Adds an argument to the top-level build script to use the mono runtime, and sets the flags needed for the different repos to work with mono. --- eng/SourceBuild.props | 1 + .../tarball/content/Directory.Build.props | 5 ++ src/SourceBuild/tarball/content/build.sh | 4 ++ .../content/repos/Directory.Build.props | 1 + ...d-support-building-with-mono-runtime.patch | 24 +++++++++ ...d-support-building-with-mono-runtime.patch | 24 +++++++++ ...d-support-building-with-mono-runtime.patch | 51 +++++++++++++++++++ 7 files changed, 110 insertions(+) create mode 100644 src/SourceBuild/tarball/patches/aspnetcore/0002-source-build-support-building-with-mono-runtime.patch create mode 100644 src/SourceBuild/tarball/patches/runtime/0001-source-build-support-building-with-mono-runtime.patch create mode 100644 src/SourceBuild/tarball/patches/sdk/0001-source-build-support-building-with-mono-runtime.patch diff --git a/src/sdk/eng/SourceBuild.props b/src/sdk/eng/SourceBuild.props index 61b9a913708..2107a718419 100644 --- a/src/sdk/eng/SourceBuild.props +++ b/src/sdk/eng/SourceBuild.props @@ -8,6 +8,7 @@ $(InnerBuildArgs) /p:Projects="$(InnerSourceBuildRepoRoot)\source-build.slnf" $(InnerBuildArgs) /p:UseSharedCompilation=false + $(InnerBuildArgs) /p:NativeAotSupported=false diff --git a/src/sdk/src/Layout/redist/targets/BundledSdks.targets b/src/sdk/src/Layout/redist/targets/BundledSdks.targets index 6f8b0fc3b33..64638ef1cff 100644 --- a/src/sdk/src/Layout/redist/targets/BundledSdks.targets +++ b/src/sdk/src/Layout/redist/targets/BundledSdks.targets @@ -5,6 +5,6 @@ - + diff --git a/src/sdk/src/Tasks/Common/Resources/Strings.resx b/src/sdk/src/Tasks/Common/Resources/Strings.resx index a347c736df5..426cb6aa96d 100644 --- a/src/sdk/src/Tasks/Common/Resources/Strings.resx +++ b/src/sdk/src/Tasks/Common/Resources/Strings.resx @@ -875,4 +875,8 @@ You may need to build the project on another operating system or architecture, o NETSDK1192: Targeting .NET 7.0 or higher in Visual Studio 2022 17.3 is not supported. {StrBegin="NETSDK1192: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index e477f7a489b..c75990f94e2 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -12,6 +12,11 @@ NETSDK1183: Sestavení nelze optimalizovat pro kompilaci s předstihem: nebyl nalezen platný balíček modulu runtime. Buď nastavte vlastnost PublishAot na hodnotu false, nebo při publikování použijte podporovaný identifikátor modulu runtime. Při cílení na .NET 7 nebo vyšší nezapomeňte obnovit balíčky s vlastností PublishAot nastavenou na hodnotu true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: Konfigurační soubor aplikace musí obsahovat kořenový element konfigurace. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.de.xlf index d8cd9725269..2e427931dd1 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -12,6 +12,11 @@ NETSDK1183: Assemblys können nicht für Ahead-of-time-Kompilierung optimiert werden: Es wurde kein gültiges Runtimepaket gefunden. Legen Sie entweder die PublishAot-Eigenschaft auf FALSE fest, oder verwenden Sie beim Veröffentlichen einen unterstützten Runtimebezeichner. Wenn Sie .NET 7 oder höher verwenden, stellen Sie sicher, dass Sie Pakete wiederherstellen, bei denen die PublishAot-Eigenschaft auf TRUE festgelegt ist. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: Die Anwendungskonfigurationsdatei muss das Stammkonfigurationselement enthalten. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.es.xlf index 4c61e20b937..cb654c521fb 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -12,6 +12,11 @@ NETSDK1183: No se pueden optimizar los ensamblados para la compilación Ahead of time: no se ha encontrado un paquete en tiempo de ejecución válido. Establezca la propiedad PublishAot en false o use un identificador de tiempo de ejecución compatible al publicar. Cuando el destino sea .NET 7 o una versión posterior, asegúrese de restaurar los paquetes con la propiedad PublishAot establecida en true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: El archivo de configuración de la aplicación debe tener el elemento de configuración raíz. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index dfbb0391549..a97af754880 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -12,6 +12,11 @@ NETSDK1183: Impossible d'optimiser les assemblys pour la compilation Ahead of time : un package d'exécution valide n'a pas été trouvé. Définissez la propriété PublishAot sur false ou utilisez un identificateur d'exécution pris en charge lors de la publication. Lorsque vous ciblez .NET 7 ou supérieur, assurez-vous de restaurer les packages avec la propriété PublishAot définie sur true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: Le fichier de configuration de l'application doit avoir un élément de configuration racine. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.it.xlf index a768517271c..70fe2939526 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -12,6 +12,11 @@ NETSDK1183: non è possibile ottimizzare gli assembly per la compilazione Ahead Of Time perché non è stato trovato alcun pacchetto di runtime valido. Impostare la proprietà PublishAot su false oppure usare un identificatore di runtime supportato durante la pubblicazione. Quando si usa .NET 7 o versioni successive, assicurarsi di ripristinare i pacchetti con la proprietà PublishAot impostata su true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: il file di configurazione dell'applicazione deve avere un elemento di configurazione radice. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index c3713a3bb6f..42ba79f1034 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -12,6 +12,11 @@ NETSDK1183: Ahead Of Time コンパイル用にアセンブリを最適化できません: 有効なランタイム パッケージが見つかりませんでした。PublishAot プロパティを false に設定するか、公開時に、サポートされているランタイム識別子を使用してください。.NET 7 以降を対象とする場合は、必ず PublishAot プロパティを true に設定してパッケージを復元してください。 {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: アプリケーション構成ファイルには、ルート構成要素が必要です。 diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index 86d77d024ad..f9695e37529 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -12,6 +12,11 @@ NETSDK1183: Ahead of Time 컴파일을 위해 어셈블리를 최적화할 수 없습니다. 유효한 런타임 패키지를 찾을 수 없습니다. PublishAot 속성을 false로 설정하거나 게시할 때 지원되는 런타임 식별자를 사용하세요. .NET 7 이상을 대상으로 하는 경우 PublishAot 속성이 true로 설정된 패키지를 복원해야 합니다. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: 애플리케이션 구성 파일에는 루트 구성 요소가 있어야 합니다. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index b954c4f64f5..0594cfc5bad 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -12,6 +12,11 @@ NETSDK1183: Nie można zoptymalizować zestawów pod kątem kompilacji z wyprzedzeniem: nie znaleziono prawidłowego pakietu środowiska uruchomieniowego. Ustaw właściwość PublishAot na wartość false lub użyj obsługiwanego identyfikatora środowiska uruchomieniowego podczas publikowania. W przypadku określania wartości docelowej platformy .NET 7 lub nowszej należy przywrócić pakiety z właściwością PublishAot ustawioną na wartość true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: Plik konfiguracji aplikacji musi mieć główny element konfiguracji. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index 4153425cfce..ae701f4dc3b 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -12,6 +12,11 @@ NETSDK1183: Não é possível otimizar assemblies para compilação antecipada: um pacote de tempo de execução válido não foi encontrado. Defina a propriedade PublishAot como false ou use um identificador de tempo de execução com suporte ao publicar. Ao direcionar o .NET 7 ou superior, certifique-se de restaurar os pacotes com a propriedade PublishAot definida como true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: o arquivo de configuração do aplicativo deve ter um elemento de configuração raiz. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index e66e13cd417..1780c0eb89b 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -12,6 +12,11 @@ NETSDK1183: не удалось оптимизировать сборки для компиляции Ahead Of Time: не найден допустимый пакет среды выполнения. Задайте для свойства PublishAot значение false либо используйте поддерживаемый идентификатор среды выполнения при публикации. При выборе .NET 7 или более поздней версии в качестве цели восстановите пакеты со свойством PublishAot со значением true. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: В файле конфигурации приложения должен присутствовать корневой элемент конфигурации. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index 4121fe024d6..d4ec2bbfea3 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -12,6 +12,11 @@ NETSDK1183: Derlemeler, AOT derlemesi için iyileştirilemedi: geçerli bir çalışma zamanı paketi bulunamadı. PublishAot özelliğini false olarak ayarlayın veya yayımlarken desteklenen bir çalışma zamanı tanımlayıcısı kullanın. .NET 7 veya üzerini hedeflerken PublishAot özelliği true olarak ayarlanmış paketleri geri yüklediğinizden emin olun. {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: Uygulama yapılandırma dosyasının kök yapılandırma öğesi olmalıdır. diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index 5bd5617ccba..77323667f98 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -12,6 +12,11 @@ NETSDK1183: 无法优化程序集以实现提前编译: 找不到有效的运行时包。将 PublishAot 属性设置为 false,或在发布时使用支持的运行时标识符。面向 .NET 7 或更高版本时,请确保还原将 PublishAot 属性设置为 true 的包。 {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: 应用程序配置文件必须具有根配置元素。 diff --git a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index c2e6be8b9be..ae573c7ed8b 100644 --- a/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/sdk/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -12,6 +12,11 @@ NETSDK1183: 無法為提前編譯最佳化組件: 找不到有效的執行階段套件。請將 PublishAot 屬性設為 false,或在發佈時使用支援的執行階段識別碼。以 .NET 7 或更高版本為目標時,請務必還原套件,將 PublishAot 屬性設為 true。 {StrBegin="NETSDK1183: "} + + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + NETSDK1193: The SDK does not support Ahead of time compilation. Set the PublishAot property to false. + {StrBegin="NETSDK1193: "} + NETSDK1070: The application configuration file must have root configuration element. NETSDK1070: 應用程式組態檔必須有根組態元素。 diff --git a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.RuntimeIdentifierInference.targets b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.RuntimeIdentifierInference.targets index 84b21ee0dd8..72d10f518af 100644 --- a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.RuntimeIdentifierInference.targets +++ b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.RuntimeIdentifierInference.targets @@ -178,6 +178,9 @@ Copyright (c) .NET Foundation. All rights reserved. ResourceName="ImplicitRuntimeIdentifierResolutionForPublishPropertyFailed" FormatArguments="PublishAot"/> + + diff --git a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.props b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.props index 73a182102d1..b7eee4dfe3d 100644 --- a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.props +++ b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.props @@ -116,6 +116,8 @@ Copyright (c) .NET Foundation. All rights reserved. true true + false + true @@ -151,7 +153,7 @@ Copyright (c) .NET Foundation. All rights reserved. - + diff --git a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets index 4311ec0ecea..1f80ab9ded0 100644 --- a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets +++ b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets @@ -1175,7 +1175,7 @@ Copyright (c) .NET Foundation. All rights reserved. - + diff --git a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets index a943e6615bf..8593957f3d6 100644 --- a/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets +++ b/src/sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets @@ -111,6 +111,8 @@ Copyright (c) .NET Foundation. All rights reserved. '$(EnableCompressionInSingleFile)' == 'true' And '$(SelfContained)' != 'true'" ResourceName="CompressionInSingleFileRequiresSelfContained" /> + - -