From 1c7508e564244de7fa2b00da2d3022daa6ac9a55 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 17 Jul 2024 07:33:09 -0400 Subject: [PATCH 01/28] Add some basic uninstall tests to CI Previous releases of .NET were leaving some directories on disk when .NET was un-installed. Add some basic tests for that. --- tests/ci.fmf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/ci.fmf b/tests/ci.fmf index 16657b9..f7e9bee 100644 --- a/tests/ci.fmf +++ b/tests/ci.fmf @@ -39,3 +39,7 @@ execute: - dotnet turkey/Turkey.dll --version - git clone "https://github.com/redhat-developer/dotnet-regular-tests.git" - dotnet turkey/Turkey.dll -l="$TMT_TEST_DATA" dotnet-regular-tests --timeout=1200 + - dnf remove -yq 'dotnet*' + - set -x; if command -v dotnet ; then exit 1; fi + - set -x; if [ -d /usr/lib64/dotnet ]; then exit 1; fi + - set -x; if man dotnet; then exit 1; fi From e014f3859b3adc015644971fab893d2a28bb4997 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 21:19:16 +0000 Subject: [PATCH 02/28] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- dotnet8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 2be9dd9..a261e1a 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -717,6 +717,9 @@ export COMPlus_LTTng=0 %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 8.0.107-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Tue Jul 09 2024 Omair Majid - 8.0.107-1 - Update to .NET SDK 8.0.107 and Runtime 8.0.7 From 0b77686bbcb843b0aa458c1675979720d7cc5e70 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 14 Aug 2024 09:36:30 -0400 Subject: [PATCH 03/28] Update to .NET SDK 8.0.108 and Runtime 8.0.8 --- .gitignore | 2 ++ dotnet8.0.spec | 11 +++++++---- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 20b3ba1..092d0a2 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,5 @@ /dotnet-8.0.5.tar.gz.sig /dotnet-8.0.7.tar.gz /dotnet-8.0.7.tar.gz.sig +/dotnet-8.0.8.tar.gz +/dotnet-8.0.8.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index a261e1a..2285670 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -8,10 +8,10 @@ %global dotnetver 8.0 -%global host_version 8.0.7 -%global runtime_version 8.0.7 +%global host_version 8.0.8 +%global runtime_version 8.0.8 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.107 +%global sdk_version 8.0.108 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 1%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -717,6 +717,9 @@ export COMPlus_LTTng=0 %changelog +* Tue Aug 13 2024 Omair Majid - 8.0.108-1 +- Update to .NET SDK 8.0.108 and Runtime 8.0.8 + * Wed Jul 17 2024 Fedora Release Engineering - 8.0.107-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/release.json b/release.json index 72a9adc..0da99bb 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.7", + "release": "8.0.8", "channel": "8.0", - "tag": "v8.0.7", - "sdkVersion": "8.0.107", - "runtimeVersion": "8.0.7", - "aspNetCoreVersion": "8.0.7", + "tag": "v8.0.8", + "sdkVersion": "8.0.108", + "runtimeVersion": "8.0.8", + "aspNetCoreVersion": "8.0.8", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "8be139ddde52d33e24c7d82f813248ff9fc54b97" + "sourceVersion": "e78e8a64f20e61e1fea4f24afca66ad1dc56285f" } diff --git a/sources b/sources index 5ffd64a..5b3c9bf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.7.tar.gz) = 8fe67e9d5ebd79b82c3d99059bed8c933cea1802a622250f8dede24a9ed815c6764509b3f683187998e9ad1cd12699f28f4438d13eead2b744ea8e1751690198 -SHA512 (dotnet-8.0.7.tar.gz.sig) = 0c3327ac975b7540c74085a4716d47f171f19a7ceb8aff4d8b162c1e967259288dede73160064305afebbd01b15ea581d9dd65a779e9b995b201e07d6bd3109c +SHA512 (dotnet-8.0.8.tar.gz) = 7f41d46bb54a13bf2483422ccc3bfbe3b3ace7bb07d29b88723c8293c242bc4847b2ef044c51893f356902b90d0750055e98f33e6da8e0bc8942151d73c58c23 +SHA512 (dotnet-8.0.8.tar.gz.sig) = 6577a4b6a2603d54e78a9fce3ffc72fbf15b9069a0e0362eb4394ce64e80daa60272af889222b5d85881cb8d43693c01597481ec58a0ee2d449cb6dbca8570bc From 7d882b45511c618de5a2ac2ae455bb9b91f57618 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Fri, 27 Sep 2024 16:12:56 -0400 Subject: [PATCH 04/28] Drop hard dependency on openssl/engine.h This is required to build .NET 8.0.107 on ELN. --- dotnet8.0.spec | 2 + runtime-104994-openssl-engine.patch | 324 ++++++++++++++++++++++++++++ 2 files changed, 326 insertions(+) create mode 100644 runtime-104994-openssl-engine.patch diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 2be9dd9..c87496f 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -92,6 +92,8 @@ Patch2: vstest-intent-net8.0.patch Patch3: runtime-re-enable-implicit-rejection.patch # https://github.com/dotnet/msbuild/pull/9449 Patch4: msbuild-9449-exec-stop-setting-a-locale.patch +# https://github.com/dotnet/runtime/pull/104994 +Patch5: runtime-104994-openssl-engine.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 diff --git a/runtime-104994-openssl-engine.patch b/runtime-104994-openssl-engine.patch new file mode 100644 index 0000000..488c93a --- /dev/null +++ b/runtime-104994-openssl-engine.patch @@ -0,0 +1,324 @@ +From 5eb7fd1d9909c3824caba0bc6a3f376557961aef Mon Sep 17 00:00:00 2001 +From: Kevin Jones +Date: Tue, 16 Jul 2024 16:56:59 -0400 +Subject: [PATCH 1/2] Light up support for OpenSSL ENGINEs only if they are + available. + +Some Linux distributions are phasing out support for OpenSSL 1.x ENGINEs. They are doing this by moving the header, `engine.h`, to a separate package or removing the header entirely. The actual OpenSSL shared libraries still contain the engine APIs. This makes the change an API, not ABI, break. + +We react to this by disabling OpenSSL engine support on non-portable builds that are missing the engine header. Portable builds will continue to probe the loaded OpenSSL library for support, and non-portable builds will only support ENGINEs if the header is present. +--- + .../Interop.EvpPkey.cs | 22 +++++-- + .../src/Resources/Strings.resx | 3 + + .../configure.cmake | 6 ++ + .../opensslshim.h | 36 ++++++++-- + .../pal_crypto_config.h.in | 1 + + .../pal_evp_pkey.c | 65 ++++++++++++++----- + .../pal_evp_pkey.h | 6 +- + 7 files changed, 109 insertions(+), 30 deletions(-) + +diff --git a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs +index 77b80634bd0ce..4e8659b5653b7 100644 +--- a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs ++++ b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs +@@ -217,7 +217,8 @@ internal static ArraySegment RentEncodeSubjectPublicKeyInfo(SafeEvpPKeyHan + [LibraryImport(Libraries.CryptoNative, StringMarshalling = StringMarshalling.Utf8)] + private static partial SafeEvpPKeyHandle CryptoNative_LoadPrivateKeyFromEngine( + string engineName, +- string keyName); ++ string keyName, ++ [MarshalAs(UnmanagedType.Bool)] out bool haveEngine); + + internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( + string engineName, +@@ -226,7 +227,13 @@ internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( + Debug.Assert(engineName is not null); + Debug.Assert(keyName is not null); + +- SafeEvpPKeyHandle pkey = CryptoNative_LoadPrivateKeyFromEngine(engineName, keyName); ++ SafeEvpPKeyHandle pkey = CryptoNative_LoadPrivateKeyFromEngine(engineName, keyName, out bool haveEngine); ++ ++ if (!haveEngine) ++ { ++ pkey.Dispose(); ++ throw new CryptographicException(SR.Cryptography_EnginesNotSupported); ++ } + + if (pkey.IsInvalid) + { +@@ -240,7 +247,8 @@ internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( + [LibraryImport(Libraries.CryptoNative, StringMarshalling = StringMarshalling.Utf8)] + private static partial SafeEvpPKeyHandle CryptoNative_LoadPublicKeyFromEngine( + string engineName, +- string keyName); ++ string keyName, ++ [MarshalAs(UnmanagedType.Bool)] out bool haveEngine); + + internal static SafeEvpPKeyHandle LoadPublicKeyFromEngine( + string engineName, +@@ -249,7 +257,13 @@ internal static SafeEvpPKeyHandle LoadPublicKeyFromEngine( + Debug.Assert(engineName is not null); + Debug.Assert(keyName is not null); + +- SafeEvpPKeyHandle pkey = CryptoNative_LoadPublicKeyFromEngine(engineName, keyName); ++ SafeEvpPKeyHandle pkey = CryptoNative_LoadPublicKeyFromEngine(engineName, keyName, out bool haveEngine); ++ ++ if (!haveEngine) ++ { ++ pkey.Dispose(); ++ throw new CryptographicException(SR.Cryptography_EnginesNotSupported); ++ } + + if (pkey.IsInvalid) + { +diff --git a/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx b/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx +index 4bcfdcfd3454f..5cc5cce830a35 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx ++++ b/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx +@@ -327,6 +327,9 @@ + + {0} unexpectedly produced a ciphertext with the incorrect length. + ++ ++ OpenSSL ENGINE is not available on this platform. ++ + + The total number of bytes extracted cannot exceed UInt32.MaxValue * hash length. + +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +index 74ed49f5d1916..10a6b986268b0 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +@@ -1,5 +1,6 @@ + include(CheckLibraryExists) + include(CheckFunctionExists) ++include(CheckSourceCompiles) + + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) +@@ -22,6 +23,11 @@ check_function_exists( + HAVE_OPENSSL_SHA3 + ) + ++check_source_compiles(C " ++#include ++int main(void) { ENGINE_init(NULL); return 1; }" ++HAVE_OPENSSL_ENGINE) ++ + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/pal_crypto_config.h.in + ${CMAKE_CURRENT_BINARY_DIR}/pal_crypto_config.h) +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h b/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h +index 57ba6a6809649..3d6d77895b64f 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h +@@ -17,7 +17,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -46,6 +45,11 @@ + #include + #endif + ++#if HAVE_OPENSSL_ENGINE ++// Some Linux distributions build without engine support. ++#include ++#endif ++ + #if OPENSSL_VERSION_NUMBER >= OPENSSL_VERSION_1_1_1_RTM + #define HAVE_OPENSSL_SET_CIPHERSUITES 1 + #else +@@ -168,6 +172,24 @@ const EVP_MD *EVP_shake256(void); + int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); + #endif + ++#if !HAVE_OPENSSL_ENGINE ++#undef HAVE_OPENSSL_ENGINE ++#define HAVE_OPENSSL_ENGINE 1 ++ ++ENGINE *ENGINE_by_id(const char *id); ++int ENGINE_init(ENGINE *e); ++int ENGINE_finish(ENGINE *e); ++ENGINE *ENGINE_new(void); ++int ENGINE_free(ENGINE *e); ++typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, ++ UI_METHOD *ui_method, ++ void *callback_data); ++EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, ++ UI_METHOD *ui_method, void *callback_data); ++EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, ++ UI_METHOD *ui_method, void *callback_data); ++#endif ++ + #define API_EXISTS(fn) (fn != NULL) + + // List of all functions from the libssl that are used in the System.Security.Cryptography.Native. +@@ -298,12 +320,12 @@ int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); + REQUIRED_FUNCTION(EC_POINT_mul) \ + REQUIRED_FUNCTION(EC_POINT_new) \ + REQUIRED_FUNCTION(EC_POINT_set_affine_coordinates_GFp) \ +- REQUIRED_FUNCTION(ENGINE_by_id) \ +- REQUIRED_FUNCTION(ENGINE_finish) \ +- REQUIRED_FUNCTION(ENGINE_free) \ +- REQUIRED_FUNCTION(ENGINE_init) \ +- REQUIRED_FUNCTION(ENGINE_load_public_key) \ +- REQUIRED_FUNCTION(ENGINE_load_private_key) \ ++ LIGHTUP_FUNCTION(ENGINE_by_id) \ ++ LIGHTUP_FUNCTION(ENGINE_finish) \ ++ LIGHTUP_FUNCTION(ENGINE_free) \ ++ LIGHTUP_FUNCTION(ENGINE_init) \ ++ LIGHTUP_FUNCTION(ENGINE_load_public_key) \ ++ LIGHTUP_FUNCTION(ENGINE_load_private_key) \ + REQUIRED_FUNCTION(ERR_clear_error) \ + REQUIRED_FUNCTION(ERR_error_string_n) \ + REQUIRED_FUNCTION(ERR_get_error) \ +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in +index d7aef5a7d1b67..30d1219eb98b0 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in +@@ -4,3 +4,4 @@ + #cmakedefine01 HAVE_OPENSSL_ALPN + #cmakedefine01 HAVE_OPENSSL_CHACHA20POLY1305 + #cmakedefine01 HAVE_OPENSSL_SHA3 ++#cmakedefine01 HAVE_OPENSSL_ENGINE +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c +index 80183b97a77c9..dea4f277b8969 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c +@@ -511,41 +511,72 @@ int32_t CryptoNative_EncodeSubjectPublicKeyInfo(EVP_PKEY* pkey, uint8_t* buf) + return i2d_PUBKEY(pkey, &buf); + } + ++#if HAVE_OPENSSL_ENGINE + static EVP_PKEY* LoadKeyFromEngine( + const char* engineName, + const char* keyName, +- ENGINE_LOAD_KEY_PTR load_func) ++ ENGINE_LOAD_KEY_PTR load_func, ++ int32_t* haveEngine) + { ++ assert(haveEngine); + ERR_clear_error(); + +- EVP_PKEY* ret = NULL; +- ENGINE* engine = NULL; ++ if (API_EXISTS(ENGINE_by_id) && API_EXISTS(ENGINE_init) && API_EXISTS(ENGINE_finish) && API_EXISTS(ENGINE_free)) ++ { ++ *haveEngine = 1; ++ EVP_PKEY* ret = NULL; ++ ENGINE* engine = NULL; + +- // Per https://github.com/openssl/openssl/discussions/21427 +- // using EVP_PKEY after freeing ENGINE is correct. +- engine = ENGINE_by_id(engineName); ++ // Per https://github.com/openssl/openssl/discussions/21427 ++ // using EVP_PKEY after freeing ENGINE is correct. ++ engine = ENGINE_by_id(engineName); + +- if (engine != NULL) +- { +- if (ENGINE_init(engine)) ++ if (engine != NULL) + { +- ret = load_func(engine, keyName, NULL, NULL); ++ if (ENGINE_init(engine)) ++ { ++ ret = load_func(engine, keyName, NULL, NULL); ++ ++ ENGINE_finish(engine); ++ } + +- ENGINE_finish(engine); ++ ENGINE_free(engine); + } + +- ENGINE_free(engine); ++ return ret; + } + +- return ret; ++ *haveEngine = 0; ++ return NULL; + } ++#endif + +-EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName) ++EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine) + { +- return LoadKeyFromEngine(engineName, keyName, ENGINE_load_private_key); ++#if HAVE_OPENSSL_ENGINE ++ if (API_EXISTS(ENGINE_load_private_key)) ++ { ++ return LoadKeyFromEngine(engineName, keyName, ENGINE_load_private_key, haveEngine); ++ } ++#endif ++ (void)engineName; ++ (void)keyName; ++ (void)haveEngine; ++ *haveEngine = 0; ++ return NULL; + } + +-EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName) ++EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine) + { +- return LoadKeyFromEngine(engineName, keyName, ENGINE_load_public_key); ++#if HAVE_OPENSSL_ENGINE ++ if (API_EXISTS(ENGINE_load_private_key)) ++ { ++ return LoadKeyFromEngine(engineName, keyName, ENGINE_load_public_key, haveEngine); ++ } ++#endif ++ (void)engineName; ++ (void)keyName; ++ (void)haveEngine; ++ *haveEngine = 0; ++ return NULL; + } +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h +index 64d289dc6f488..e4d5f85d4b9ec 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h +@@ -93,12 +93,14 @@ PALEXPORT int32_t CryptoNative_EncodeSubjectPublicKeyInfo(EVP_PKEY* pkey, uint8_ + Load a named key, via ENGINE_load_private_key, from the named engine. + + Returns a valid EVP_PKEY* on success, NULL on failure. ++haveEngine is 1 if OpenSSL ENGINE's are supported, otherwise 0. + */ +-PALEXPORT EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName); ++PALEXPORT EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine); + + /* + Load a named key, via ENGINE_load_public_key, from the named engine. + + Returns a valid EVP_PKEY* on success, NULL on failure. ++haveEngine is 1 if OpenSSL ENGINE's are supported, otherwise 0. + */ +-PALEXPORT EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName); ++PALEXPORT EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine); + +From c81f7a8f5000151edfac9f9d891121a01a64f1ba Mon Sep 17 00:00:00 2001 +From: Kevin Jones +Date: Wed, 17 Jul 2024 07:47:53 -0400 +Subject: [PATCH 2/2] Fix detection of ENGINE APIs with OpenSSL 3 + +--- + .../libs/System.Security.Cryptography.Native/configure.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +index 10a6b986268b0..4a70e70899c5e 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +@@ -4,6 +4,7 @@ include(CheckSourceCompiles) + + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) ++set(CMAKE_REQUIRED_DEFINITIONS -DOPENSSL_API_COMPAT=0x10100000L) + + check_function_exists( + EC_GF2m_simple_method From 1ff84c206d478e7cc04642b169da4879a0534894 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Fri, 27 Sep 2024 22:46:29 -0400 Subject: [PATCH 05/28] Support building without ENGINE support in OpenSSL --- dotnet8.0.spec | 7 +- runtime-104994-openssl-engine.patch | 324 ++++++++++++++++++++++++++++ 2 files changed, 330 insertions(+), 1 deletion(-) create mode 100644 runtime-104994-openssl-engine.patch diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 2285670..9f688bb 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -92,6 +92,8 @@ Patch2: vstest-intent-net8.0.patch Patch3: runtime-re-enable-implicit-rejection.patch # https://github.com/dotnet/msbuild/pull/9449 Patch4: msbuild-9449-exec-stop-setting-a-locale.patch +# https://github.com/dotnet/runtime/pull/104994 +Patch5: runtime-104994-openssl-engine.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 @@ -717,6 +719,9 @@ export COMPlus_LTTng=0 %changelog +* Fri Sep 27 2024 Omair Majid - 8.0.108-2 +- Support building without ENGINE support in OpenSSL + * Tue Aug 13 2024 Omair Majid - 8.0.108-1 - Update to .NET SDK 8.0.108 and Runtime 8.0.8 diff --git a/runtime-104994-openssl-engine.patch b/runtime-104994-openssl-engine.patch new file mode 100644 index 0000000..488c93a --- /dev/null +++ b/runtime-104994-openssl-engine.patch @@ -0,0 +1,324 @@ +From 5eb7fd1d9909c3824caba0bc6a3f376557961aef Mon Sep 17 00:00:00 2001 +From: Kevin Jones +Date: Tue, 16 Jul 2024 16:56:59 -0400 +Subject: [PATCH 1/2] Light up support for OpenSSL ENGINEs only if they are + available. + +Some Linux distributions are phasing out support for OpenSSL 1.x ENGINEs. They are doing this by moving the header, `engine.h`, to a separate package or removing the header entirely. The actual OpenSSL shared libraries still contain the engine APIs. This makes the change an API, not ABI, break. + +We react to this by disabling OpenSSL engine support on non-portable builds that are missing the engine header. Portable builds will continue to probe the loaded OpenSSL library for support, and non-portable builds will only support ENGINEs if the header is present. +--- + .../Interop.EvpPkey.cs | 22 +++++-- + .../src/Resources/Strings.resx | 3 + + .../configure.cmake | 6 ++ + .../opensslshim.h | 36 ++++++++-- + .../pal_crypto_config.h.in | 1 + + .../pal_evp_pkey.c | 65 ++++++++++++++----- + .../pal_evp_pkey.h | 6 +- + 7 files changed, 109 insertions(+), 30 deletions(-) + +diff --git a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs +index 77b80634bd0ce..4e8659b5653b7 100644 +--- a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs ++++ b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs +@@ -217,7 +217,8 @@ internal static ArraySegment RentEncodeSubjectPublicKeyInfo(SafeEvpPKeyHan + [LibraryImport(Libraries.CryptoNative, StringMarshalling = StringMarshalling.Utf8)] + private static partial SafeEvpPKeyHandle CryptoNative_LoadPrivateKeyFromEngine( + string engineName, +- string keyName); ++ string keyName, ++ [MarshalAs(UnmanagedType.Bool)] out bool haveEngine); + + internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( + string engineName, +@@ -226,7 +227,13 @@ internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( + Debug.Assert(engineName is not null); + Debug.Assert(keyName is not null); + +- SafeEvpPKeyHandle pkey = CryptoNative_LoadPrivateKeyFromEngine(engineName, keyName); ++ SafeEvpPKeyHandle pkey = CryptoNative_LoadPrivateKeyFromEngine(engineName, keyName, out bool haveEngine); ++ ++ if (!haveEngine) ++ { ++ pkey.Dispose(); ++ throw new CryptographicException(SR.Cryptography_EnginesNotSupported); ++ } + + if (pkey.IsInvalid) + { +@@ -240,7 +247,8 @@ internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( + [LibraryImport(Libraries.CryptoNative, StringMarshalling = StringMarshalling.Utf8)] + private static partial SafeEvpPKeyHandle CryptoNative_LoadPublicKeyFromEngine( + string engineName, +- string keyName); ++ string keyName, ++ [MarshalAs(UnmanagedType.Bool)] out bool haveEngine); + + internal static SafeEvpPKeyHandle LoadPublicKeyFromEngine( + string engineName, +@@ -249,7 +257,13 @@ internal static SafeEvpPKeyHandle LoadPublicKeyFromEngine( + Debug.Assert(engineName is not null); + Debug.Assert(keyName is not null); + +- SafeEvpPKeyHandle pkey = CryptoNative_LoadPublicKeyFromEngine(engineName, keyName); ++ SafeEvpPKeyHandle pkey = CryptoNative_LoadPublicKeyFromEngine(engineName, keyName, out bool haveEngine); ++ ++ if (!haveEngine) ++ { ++ pkey.Dispose(); ++ throw new CryptographicException(SR.Cryptography_EnginesNotSupported); ++ } + + if (pkey.IsInvalid) + { +diff --git a/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx b/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx +index 4bcfdcfd3454f..5cc5cce830a35 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx ++++ b/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx +@@ -327,6 +327,9 @@ + + {0} unexpectedly produced a ciphertext with the incorrect length. + ++ ++ OpenSSL ENGINE is not available on this platform. ++ + + The total number of bytes extracted cannot exceed UInt32.MaxValue * hash length. + +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +index 74ed49f5d1916..10a6b986268b0 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +@@ -1,5 +1,6 @@ + include(CheckLibraryExists) + include(CheckFunctionExists) ++include(CheckSourceCompiles) + + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) +@@ -22,6 +23,11 @@ check_function_exists( + HAVE_OPENSSL_SHA3 + ) + ++check_source_compiles(C " ++#include ++int main(void) { ENGINE_init(NULL); return 1; }" ++HAVE_OPENSSL_ENGINE) ++ + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/pal_crypto_config.h.in + ${CMAKE_CURRENT_BINARY_DIR}/pal_crypto_config.h) +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h b/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h +index 57ba6a6809649..3d6d77895b64f 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h +@@ -17,7 +17,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -46,6 +45,11 @@ + #include + #endif + ++#if HAVE_OPENSSL_ENGINE ++// Some Linux distributions build without engine support. ++#include ++#endif ++ + #if OPENSSL_VERSION_NUMBER >= OPENSSL_VERSION_1_1_1_RTM + #define HAVE_OPENSSL_SET_CIPHERSUITES 1 + #else +@@ -168,6 +172,24 @@ const EVP_MD *EVP_shake256(void); + int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); + #endif + ++#if !HAVE_OPENSSL_ENGINE ++#undef HAVE_OPENSSL_ENGINE ++#define HAVE_OPENSSL_ENGINE 1 ++ ++ENGINE *ENGINE_by_id(const char *id); ++int ENGINE_init(ENGINE *e); ++int ENGINE_finish(ENGINE *e); ++ENGINE *ENGINE_new(void); ++int ENGINE_free(ENGINE *e); ++typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, ++ UI_METHOD *ui_method, ++ void *callback_data); ++EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, ++ UI_METHOD *ui_method, void *callback_data); ++EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, ++ UI_METHOD *ui_method, void *callback_data); ++#endif ++ + #define API_EXISTS(fn) (fn != NULL) + + // List of all functions from the libssl that are used in the System.Security.Cryptography.Native. +@@ -298,12 +320,12 @@ int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); + REQUIRED_FUNCTION(EC_POINT_mul) \ + REQUIRED_FUNCTION(EC_POINT_new) \ + REQUIRED_FUNCTION(EC_POINT_set_affine_coordinates_GFp) \ +- REQUIRED_FUNCTION(ENGINE_by_id) \ +- REQUIRED_FUNCTION(ENGINE_finish) \ +- REQUIRED_FUNCTION(ENGINE_free) \ +- REQUIRED_FUNCTION(ENGINE_init) \ +- REQUIRED_FUNCTION(ENGINE_load_public_key) \ +- REQUIRED_FUNCTION(ENGINE_load_private_key) \ ++ LIGHTUP_FUNCTION(ENGINE_by_id) \ ++ LIGHTUP_FUNCTION(ENGINE_finish) \ ++ LIGHTUP_FUNCTION(ENGINE_free) \ ++ LIGHTUP_FUNCTION(ENGINE_init) \ ++ LIGHTUP_FUNCTION(ENGINE_load_public_key) \ ++ LIGHTUP_FUNCTION(ENGINE_load_private_key) \ + REQUIRED_FUNCTION(ERR_clear_error) \ + REQUIRED_FUNCTION(ERR_error_string_n) \ + REQUIRED_FUNCTION(ERR_get_error) \ +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in +index d7aef5a7d1b67..30d1219eb98b0 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in +@@ -4,3 +4,4 @@ + #cmakedefine01 HAVE_OPENSSL_ALPN + #cmakedefine01 HAVE_OPENSSL_CHACHA20POLY1305 + #cmakedefine01 HAVE_OPENSSL_SHA3 ++#cmakedefine01 HAVE_OPENSSL_ENGINE +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c +index 80183b97a77c9..dea4f277b8969 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c +@@ -511,41 +511,72 @@ int32_t CryptoNative_EncodeSubjectPublicKeyInfo(EVP_PKEY* pkey, uint8_t* buf) + return i2d_PUBKEY(pkey, &buf); + } + ++#if HAVE_OPENSSL_ENGINE + static EVP_PKEY* LoadKeyFromEngine( + const char* engineName, + const char* keyName, +- ENGINE_LOAD_KEY_PTR load_func) ++ ENGINE_LOAD_KEY_PTR load_func, ++ int32_t* haveEngine) + { ++ assert(haveEngine); + ERR_clear_error(); + +- EVP_PKEY* ret = NULL; +- ENGINE* engine = NULL; ++ if (API_EXISTS(ENGINE_by_id) && API_EXISTS(ENGINE_init) && API_EXISTS(ENGINE_finish) && API_EXISTS(ENGINE_free)) ++ { ++ *haveEngine = 1; ++ EVP_PKEY* ret = NULL; ++ ENGINE* engine = NULL; + +- // Per https://github.com/openssl/openssl/discussions/21427 +- // using EVP_PKEY after freeing ENGINE is correct. +- engine = ENGINE_by_id(engineName); ++ // Per https://github.com/openssl/openssl/discussions/21427 ++ // using EVP_PKEY after freeing ENGINE is correct. ++ engine = ENGINE_by_id(engineName); + +- if (engine != NULL) +- { +- if (ENGINE_init(engine)) ++ if (engine != NULL) + { +- ret = load_func(engine, keyName, NULL, NULL); ++ if (ENGINE_init(engine)) ++ { ++ ret = load_func(engine, keyName, NULL, NULL); ++ ++ ENGINE_finish(engine); ++ } + +- ENGINE_finish(engine); ++ ENGINE_free(engine); + } + +- ENGINE_free(engine); ++ return ret; + } + +- return ret; ++ *haveEngine = 0; ++ return NULL; + } ++#endif + +-EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName) ++EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine) + { +- return LoadKeyFromEngine(engineName, keyName, ENGINE_load_private_key); ++#if HAVE_OPENSSL_ENGINE ++ if (API_EXISTS(ENGINE_load_private_key)) ++ { ++ return LoadKeyFromEngine(engineName, keyName, ENGINE_load_private_key, haveEngine); ++ } ++#endif ++ (void)engineName; ++ (void)keyName; ++ (void)haveEngine; ++ *haveEngine = 0; ++ return NULL; + } + +-EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName) ++EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine) + { +- return LoadKeyFromEngine(engineName, keyName, ENGINE_load_public_key); ++#if HAVE_OPENSSL_ENGINE ++ if (API_EXISTS(ENGINE_load_private_key)) ++ { ++ return LoadKeyFromEngine(engineName, keyName, ENGINE_load_public_key, haveEngine); ++ } ++#endif ++ (void)engineName; ++ (void)keyName; ++ (void)haveEngine; ++ *haveEngine = 0; ++ return NULL; + } +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h +index 64d289dc6f488..e4d5f85d4b9ec 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h +@@ -93,12 +93,14 @@ PALEXPORT int32_t CryptoNative_EncodeSubjectPublicKeyInfo(EVP_PKEY* pkey, uint8_ + Load a named key, via ENGINE_load_private_key, from the named engine. + + Returns a valid EVP_PKEY* on success, NULL on failure. ++haveEngine is 1 if OpenSSL ENGINE's are supported, otherwise 0. + */ +-PALEXPORT EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName); ++PALEXPORT EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine); + + /* + Load a named key, via ENGINE_load_public_key, from the named engine. + + Returns a valid EVP_PKEY* on success, NULL on failure. ++haveEngine is 1 if OpenSSL ENGINE's are supported, otherwise 0. + */ +-PALEXPORT EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName); ++PALEXPORT EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine); + +From c81f7a8f5000151edfac9f9d891121a01a64f1ba Mon Sep 17 00:00:00 2001 +From: Kevin Jones +Date: Wed, 17 Jul 2024 07:47:53 -0400 +Subject: [PATCH 2/2] Fix detection of ENGINE APIs with OpenSSL 3 + +--- + .../libs/System.Security.Cryptography.Native/configure.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +index 10a6b986268b0..4a70e70899c5e 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake +@@ -4,6 +4,7 @@ include(CheckSourceCompiles) + + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) ++set(CMAKE_REQUIRED_DEFINITIONS -DOPENSSL_API_COMPAT=0x10100000L) + + check_function_exists( + EC_GF2m_simple_method From d3c2b264e94c3283737731d6d70e9fdc562934b6 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 15 Oct 2024 22:02:21 -0400 Subject: [PATCH 06/28] Update to .NET SDK 8.0.110 and Runtime 8.0.10 --- .gitignore | 2 + dotnet8.0.spec | 15 +- release.json | 12 +- runtime-104994-openssl-engine.patch | 324 ---------------------------- runtime-clang-19.patch | 55 +++++ sources | 4 +- 6 files changed, 74 insertions(+), 338 deletions(-) delete mode 100644 runtime-104994-openssl-engine.patch create mode 100644 runtime-clang-19.patch diff --git a/.gitignore b/.gitignore index 092d0a2..1c3f091 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,5 @@ /dotnet-8.0.7.tar.gz.sig /dotnet-8.0.8.tar.gz /dotnet-8.0.8.tar.gz.sig +/dotnet-8.0.10.tar.gz +/dotnet-8.0.10.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 9f688bb..5288a84 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -8,10 +8,10 @@ %global dotnetver 8.0 -%global host_version 8.0.8 -%global runtime_version 8.0.8 +%global host_version 8.0.10 +%global runtime_version 8.0.10 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.108 +%global sdk_version 8.0.110 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 1%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -92,8 +92,8 @@ Patch2: vstest-intent-net8.0.patch Patch3: runtime-re-enable-implicit-rejection.patch # https://github.com/dotnet/msbuild/pull/9449 Patch4: msbuild-9449-exec-stop-setting-a-locale.patch -# https://github.com/dotnet/runtime/pull/104994 -Patch5: runtime-104994-openssl-engine.patch +# TODO +Patch5: runtime-clang-19.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 @@ -719,6 +719,9 @@ export COMPlus_LTTng=0 %changelog +* Fri Oct 11 2024 Omair Majid - 8.0.110-1 +- Update to .NET SDK 8.0.110 and Runtime 8.0.10 + * Fri Sep 27 2024 Omair Majid - 8.0.108-2 - Support building without ENGINE support in OpenSSL diff --git a/release.json b/release.json index 0da99bb..501d01c 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.8", + "release": "8.0.10", "channel": "8.0", - "tag": "v8.0.8", - "sdkVersion": "8.0.108", - "runtimeVersion": "8.0.8", - "aspNetCoreVersion": "8.0.8", + "tag": "v8.0.10", + "sdkVersion": "8.0.110", + "runtimeVersion": "8.0.10", + "aspNetCoreVersion": "8.0.10", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "e78e8a64f20e61e1fea4f24afca66ad1dc56285f" + "sourceVersion": "8922fe64a1903ed4e35e24568efb056b3e0fad43" } diff --git a/runtime-104994-openssl-engine.patch b/runtime-104994-openssl-engine.patch deleted file mode 100644 index 488c93a..0000000 --- a/runtime-104994-openssl-engine.patch +++ /dev/null @@ -1,324 +0,0 @@ -From 5eb7fd1d9909c3824caba0bc6a3f376557961aef Mon Sep 17 00:00:00 2001 -From: Kevin Jones -Date: Tue, 16 Jul 2024 16:56:59 -0400 -Subject: [PATCH 1/2] Light up support for OpenSSL ENGINEs only if they are - available. - -Some Linux distributions are phasing out support for OpenSSL 1.x ENGINEs. They are doing this by moving the header, `engine.h`, to a separate package or removing the header entirely. The actual OpenSSL shared libraries still contain the engine APIs. This makes the change an API, not ABI, break. - -We react to this by disabling OpenSSL engine support on non-portable builds that are missing the engine header. Portable builds will continue to probe the loaded OpenSSL library for support, and non-portable builds will only support ENGINEs if the header is present. ---- - .../Interop.EvpPkey.cs | 22 +++++-- - .../src/Resources/Strings.resx | 3 + - .../configure.cmake | 6 ++ - .../opensslshim.h | 36 ++++++++-- - .../pal_crypto_config.h.in | 1 + - .../pal_evp_pkey.c | 65 ++++++++++++++----- - .../pal_evp_pkey.h | 6 +- - 7 files changed, 109 insertions(+), 30 deletions(-) - -diff --git a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs -index 77b80634bd0ce..4e8659b5653b7 100644 ---- a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs -+++ b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs -@@ -217,7 +217,8 @@ internal static ArraySegment RentEncodeSubjectPublicKeyInfo(SafeEvpPKeyHan - [LibraryImport(Libraries.CryptoNative, StringMarshalling = StringMarshalling.Utf8)] - private static partial SafeEvpPKeyHandle CryptoNative_LoadPrivateKeyFromEngine( - string engineName, -- string keyName); -+ string keyName, -+ [MarshalAs(UnmanagedType.Bool)] out bool haveEngine); - - internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( - string engineName, -@@ -226,7 +227,13 @@ internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( - Debug.Assert(engineName is not null); - Debug.Assert(keyName is not null); - -- SafeEvpPKeyHandle pkey = CryptoNative_LoadPrivateKeyFromEngine(engineName, keyName); -+ SafeEvpPKeyHandle pkey = CryptoNative_LoadPrivateKeyFromEngine(engineName, keyName, out bool haveEngine); -+ -+ if (!haveEngine) -+ { -+ pkey.Dispose(); -+ throw new CryptographicException(SR.Cryptography_EnginesNotSupported); -+ } - - if (pkey.IsInvalid) - { -@@ -240,7 +247,8 @@ internal static SafeEvpPKeyHandle LoadPrivateKeyFromEngine( - [LibraryImport(Libraries.CryptoNative, StringMarshalling = StringMarshalling.Utf8)] - private static partial SafeEvpPKeyHandle CryptoNative_LoadPublicKeyFromEngine( - string engineName, -- string keyName); -+ string keyName, -+ [MarshalAs(UnmanagedType.Bool)] out bool haveEngine); - - internal static SafeEvpPKeyHandle LoadPublicKeyFromEngine( - string engineName, -@@ -249,7 +257,13 @@ internal static SafeEvpPKeyHandle LoadPublicKeyFromEngine( - Debug.Assert(engineName is not null); - Debug.Assert(keyName is not null); - -- SafeEvpPKeyHandle pkey = CryptoNative_LoadPublicKeyFromEngine(engineName, keyName); -+ SafeEvpPKeyHandle pkey = CryptoNative_LoadPublicKeyFromEngine(engineName, keyName, out bool haveEngine); -+ -+ if (!haveEngine) -+ { -+ pkey.Dispose(); -+ throw new CryptographicException(SR.Cryptography_EnginesNotSupported); -+ } - - if (pkey.IsInvalid) - { -diff --git a/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx b/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx -index 4bcfdcfd3454f..5cc5cce830a35 100644 ---- a/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx -+++ b/src/runtime/src/libraries/System.Security.Cryptography/src/Resources/Strings.resx -@@ -327,6 +327,9 @@ - - {0} unexpectedly produced a ciphertext with the incorrect length. - -+ -+ OpenSSL ENGINE is not available on this platform. -+ - - The total number of bytes extracted cannot exceed UInt32.MaxValue * hash length. - -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake -index 74ed49f5d1916..10a6b986268b0 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake -@@ -1,5 +1,6 @@ - include(CheckLibraryExists) - include(CheckFunctionExists) -+include(CheckSourceCompiles) - - set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) - set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) -@@ -22,6 +23,11 @@ check_function_exists( - HAVE_OPENSSL_SHA3 - ) - -+check_source_compiles(C " -+#include -+int main(void) { ENGINE_init(NULL); return 1; }" -+HAVE_OPENSSL_ENGINE) -+ - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/pal_crypto_config.h.in - ${CMAKE_CURRENT_BINARY_DIR}/pal_crypto_config.h) -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h b/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h -index 57ba6a6809649..3d6d77895b64f 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.h -@@ -17,7 +17,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -46,6 +45,11 @@ - #include - #endif - -+#if HAVE_OPENSSL_ENGINE -+// Some Linux distributions build without engine support. -+#include -+#endif -+ - #if OPENSSL_VERSION_NUMBER >= OPENSSL_VERSION_1_1_1_RTM - #define HAVE_OPENSSL_SET_CIPHERSUITES 1 - #else -@@ -168,6 +172,24 @@ const EVP_MD *EVP_shake256(void); - int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); - #endif - -+#if !HAVE_OPENSSL_ENGINE -+#undef HAVE_OPENSSL_ENGINE -+#define HAVE_OPENSSL_ENGINE 1 -+ -+ENGINE *ENGINE_by_id(const char *id); -+int ENGINE_init(ENGINE *e); -+int ENGINE_finish(ENGINE *e); -+ENGINE *ENGINE_new(void); -+int ENGINE_free(ENGINE *e); -+typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, -+ UI_METHOD *ui_method, -+ void *callback_data); -+EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, -+ UI_METHOD *ui_method, void *callback_data); -+EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, -+ UI_METHOD *ui_method, void *callback_data); -+#endif -+ - #define API_EXISTS(fn) (fn != NULL) - - // List of all functions from the libssl that are used in the System.Security.Cryptography.Native. -@@ -298,12 +320,12 @@ int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); - REQUIRED_FUNCTION(EC_POINT_mul) \ - REQUIRED_FUNCTION(EC_POINT_new) \ - REQUIRED_FUNCTION(EC_POINT_set_affine_coordinates_GFp) \ -- REQUIRED_FUNCTION(ENGINE_by_id) \ -- REQUIRED_FUNCTION(ENGINE_finish) \ -- REQUIRED_FUNCTION(ENGINE_free) \ -- REQUIRED_FUNCTION(ENGINE_init) \ -- REQUIRED_FUNCTION(ENGINE_load_public_key) \ -- REQUIRED_FUNCTION(ENGINE_load_private_key) \ -+ LIGHTUP_FUNCTION(ENGINE_by_id) \ -+ LIGHTUP_FUNCTION(ENGINE_finish) \ -+ LIGHTUP_FUNCTION(ENGINE_free) \ -+ LIGHTUP_FUNCTION(ENGINE_init) \ -+ LIGHTUP_FUNCTION(ENGINE_load_public_key) \ -+ LIGHTUP_FUNCTION(ENGINE_load_private_key) \ - REQUIRED_FUNCTION(ERR_clear_error) \ - REQUIRED_FUNCTION(ERR_error_string_n) \ - REQUIRED_FUNCTION(ERR_get_error) \ -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in -index d7aef5a7d1b67..30d1219eb98b0 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_crypto_config.h.in -@@ -4,3 +4,4 @@ - #cmakedefine01 HAVE_OPENSSL_ALPN - #cmakedefine01 HAVE_OPENSSL_CHACHA20POLY1305 - #cmakedefine01 HAVE_OPENSSL_SHA3 -+#cmakedefine01 HAVE_OPENSSL_ENGINE -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c -index 80183b97a77c9..dea4f277b8969 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.c -@@ -511,41 +511,72 @@ int32_t CryptoNative_EncodeSubjectPublicKeyInfo(EVP_PKEY* pkey, uint8_t* buf) - return i2d_PUBKEY(pkey, &buf); - } - -+#if HAVE_OPENSSL_ENGINE - static EVP_PKEY* LoadKeyFromEngine( - const char* engineName, - const char* keyName, -- ENGINE_LOAD_KEY_PTR load_func) -+ ENGINE_LOAD_KEY_PTR load_func, -+ int32_t* haveEngine) - { -+ assert(haveEngine); - ERR_clear_error(); - -- EVP_PKEY* ret = NULL; -- ENGINE* engine = NULL; -+ if (API_EXISTS(ENGINE_by_id) && API_EXISTS(ENGINE_init) && API_EXISTS(ENGINE_finish) && API_EXISTS(ENGINE_free)) -+ { -+ *haveEngine = 1; -+ EVP_PKEY* ret = NULL; -+ ENGINE* engine = NULL; - -- // Per https://github.com/openssl/openssl/discussions/21427 -- // using EVP_PKEY after freeing ENGINE is correct. -- engine = ENGINE_by_id(engineName); -+ // Per https://github.com/openssl/openssl/discussions/21427 -+ // using EVP_PKEY after freeing ENGINE is correct. -+ engine = ENGINE_by_id(engineName); - -- if (engine != NULL) -- { -- if (ENGINE_init(engine)) -+ if (engine != NULL) - { -- ret = load_func(engine, keyName, NULL, NULL); -+ if (ENGINE_init(engine)) -+ { -+ ret = load_func(engine, keyName, NULL, NULL); -+ -+ ENGINE_finish(engine); -+ } - -- ENGINE_finish(engine); -+ ENGINE_free(engine); - } - -- ENGINE_free(engine); -+ return ret; - } - -- return ret; -+ *haveEngine = 0; -+ return NULL; - } -+#endif - --EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName) -+EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine) - { -- return LoadKeyFromEngine(engineName, keyName, ENGINE_load_private_key); -+#if HAVE_OPENSSL_ENGINE -+ if (API_EXISTS(ENGINE_load_private_key)) -+ { -+ return LoadKeyFromEngine(engineName, keyName, ENGINE_load_private_key, haveEngine); -+ } -+#endif -+ (void)engineName; -+ (void)keyName; -+ (void)haveEngine; -+ *haveEngine = 0; -+ return NULL; - } - --EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName) -+EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine) - { -- return LoadKeyFromEngine(engineName, keyName, ENGINE_load_public_key); -+#if HAVE_OPENSSL_ENGINE -+ if (API_EXISTS(ENGINE_load_private_key)) -+ { -+ return LoadKeyFromEngine(engineName, keyName, ENGINE_load_public_key, haveEngine); -+ } -+#endif -+ (void)engineName; -+ (void)keyName; -+ (void)haveEngine; -+ *haveEngine = 0; -+ return NULL; - } -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h -index 64d289dc6f488..e4d5f85d4b9ec 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey.h -@@ -93,12 +93,14 @@ PALEXPORT int32_t CryptoNative_EncodeSubjectPublicKeyInfo(EVP_PKEY* pkey, uint8_ - Load a named key, via ENGINE_load_private_key, from the named engine. - - Returns a valid EVP_PKEY* on success, NULL on failure. -+haveEngine is 1 if OpenSSL ENGINE's are supported, otherwise 0. - */ --PALEXPORT EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName); -+PALEXPORT EVP_PKEY* CryptoNative_LoadPrivateKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine); - - /* - Load a named key, via ENGINE_load_public_key, from the named engine. - - Returns a valid EVP_PKEY* on success, NULL on failure. -+haveEngine is 1 if OpenSSL ENGINE's are supported, otherwise 0. - */ --PALEXPORT EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName); -+PALEXPORT EVP_PKEY* CryptoNative_LoadPublicKeyFromEngine(const char* engineName, const char* keyName, int32_t* haveEngine); - -From c81f7a8f5000151edfac9f9d891121a01a64f1ba Mon Sep 17 00:00:00 2001 -From: Kevin Jones -Date: Wed, 17 Jul 2024 07:47:53 -0400 -Subject: [PATCH 2/2] Fix detection of ENGINE APIs with OpenSSL 3 - ---- - .../libs/System.Security.Cryptography.Native/configure.cmake | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake -index 10a6b986268b0..4a70e70899c5e 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/configure.cmake -@@ -4,6 +4,7 @@ include(CheckSourceCompiles) - - set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) - set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) -+set(CMAKE_REQUIRED_DEFINITIONS -DOPENSSL_API_COMPAT=0x10100000L) - - check_function_exists( - EC_GF2m_simple_method diff --git a/runtime-clang-19.patch b/runtime-clang-19.patch new file mode 100644 index 0000000..9d24455 --- /dev/null +++ b/runtime-clang-19.patch @@ -0,0 +1,55 @@ +commit e356f564bf74909e77d000e3ad1b8b43c30d070c (HEAD -> release/8.0) +Author: Omair Majid +Date: Tue Oct 15 14:53:33 2024 -0400 + + Fix clang19 build (#105141) + +diff --git a/src/runtime/src/coreclr/vm/comreflectioncache.hpp b/src/runtime/src/coreclr/vm/comreflectioncache.hpp +index 08d173e6164..12db55251d8 100644 +--- a/src/runtime/src/coreclr/vm/comreflectioncache.hpp ++++ b/src/runtime/src/coreclr/vm/comreflectioncache.hpp +@@ -26,6 +26,7 @@ public: + + void Init(); + ++#ifndef DACCESS_COMPILE + BOOL GetFromCache(Element *pElement, CacheType& rv) + { + CONTRACTL +@@ -102,6 +103,7 @@ public: + AdjustStamp(TRUE); + this->LeaveWrite(); + } ++#endif // !DACCESS_COMPILE + + private: + // Lock must have been taken before calling this. +@@ -141,6 +143,7 @@ private: + return CacheSize; + } + ++#ifndef DACCESS_COMPILE + void AdjustStamp(BOOL hasWriterLock) + { + CONTRACTL +@@ -170,6 +173,7 @@ private: + if (!hasWriterLock) + this->LeaveWrite(); + } ++#endif // !DACCESS_COMPILE + + void UpdateHashTable(SIZE_T hash, int slot) + { +diff --git a/src/runtime/src/native/libs/CMakeLists.txt b/src/runtime/src/native/libs/CMakeLists.txt +index b8ec2cf654c..ca8590985d6 100644 +--- a/src/runtime/src/native/libs/CMakeLists.txt ++++ b/src/runtime/src/native/libs/CMakeLists.txt +@@ -128,6 +128,8 @@ if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI) + add_compile_options(-Wno-cast-align) + add_compile_options(-Wno-typedef-redefinition) + add_compile_options(-Wno-c11-extensions) ++ add_compile_options(-Wno-pre-c11-compat) # fixes build on Debian ++ add_compile_options(-Wno-unknown-warning-option) # unknown warning option '-Wno-pre-c11-compat' + add_compile_options(-Wno-thread-safety-analysis) + if (CLR_CMAKE_TARGET_BROWSER) + add_compile_options(-Wno-unsafe-buffer-usage) diff --git a/sources b/sources index 5b3c9bf..e51e47c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.8.tar.gz) = 7f41d46bb54a13bf2483422ccc3bfbe3b3ace7bb07d29b88723c8293c242bc4847b2ef044c51893f356902b90d0750055e98f33e6da8e0bc8942151d73c58c23 -SHA512 (dotnet-8.0.8.tar.gz.sig) = 6577a4b6a2603d54e78a9fce3ffc72fbf15b9069a0e0362eb4394ce64e80daa60272af889222b5d85881cb8d43693c01597481ec58a0ee2d449cb6dbca8570bc +SHA512 (dotnet-8.0.10.tar.gz) = 5bb660d4bf750392d4022ceb02a7f76a04a8f789c9fbbde329019bc3e097fd7296984b52d29dfc027d31b7b4defdf3807f10e37a9696f8f0026c77cea6ad0d18 +SHA512 (dotnet-8.0.10.tar.gz.sig) = 364d1e4cddd01ac8c1c8298f981c08a8ff22a118d2c8b0aa9b2baa26899c4d28217c35922d71f9a65eb30a7329293de76de66ec495ca750a8f3fd1a479c30647 From 32d7e526a3ef8580591cbb32381f2a4eab04290c Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 22 Oct 2024 11:21:12 -0400 Subject: [PATCH 07/28] Support certificate validation with SHA-1 signatures on OpenSSL 3 --- dotnet8.0.spec | 5 +++++ runtime-openssl-sha1.patch | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 runtime-openssl-sha1.patch diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 5288a84..4546fa9 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -94,6 +94,11 @@ Patch3: runtime-re-enable-implicit-rejection.patch Patch4: msbuild-9449-exec-stop-setting-a-locale.patch # TODO Patch5: runtime-clang-19.patch +# We disable checking the signature of the last certificate in a chain if the certificate is supposedly self-signed. +# A side effect of not checking the self-signature of such a certificate is that disabled or unsupported message +# digests used for the signature are not treated as fatal errors. +# https://issues.redhat.com/browse/RHEL-25254 +Patch6: runtime-openssl-sha1.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 diff --git a/runtime-openssl-sha1.patch b/runtime-openssl-sha1.patch new file mode 100644 index 0000000..6e307ef --- /dev/null +++ b/runtime-openssl-sha1.patch @@ -0,0 +1,34 @@ +From d7805229ffe6906cd0832c0482b963caf4b4fd82 Mon Sep 17 00:00:00 2001 +From: Tom Deseyn +Date: Wed, 28 Feb 2024 14:08:15 +0100 +Subject: [PATCH] Allow certificate validation with SHA-1 signatures. + +RHEL OpenSSL builds disable SHA-1 signatures. This causes certificate +validation to fail when using the X509_V_FLAG_CHECK_SS_SIGNATURE flag +with a chain where the last certificate uses a SHA-1 signature. + +This removes X509_V_FLAG_CHECK_SS_SIGNATURE flag to have the default +OpenSSL behavior for certificate validation. +--- + .../libs/System.Security.Cryptography.Native/pal_x509.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_x509.c b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_x509.c +index 04c6ba06cd..2cd3413dae 100644 +--- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_x509.c ++++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_x509.c +@@ -272,11 +272,6 @@ int32_t CryptoNative_X509StoreCtxInit(X509_STORE_CTX* ctx, X509_STORE* store, X5 + + int32_t val = X509_STORE_CTX_init(ctx, store, x509, extraStore); + +- if (val != 0) +- { +- X509_STORE_CTX_set_flags(ctx, X509_V_FLAG_CHECK_SS_SIGNATURE); +- } +- + return val; + } + +-- +2.43.2 + From 22bf7b267c7a23ba644d1eb93e223c50b7c06914 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 19 Nov 2024 13:09:36 -0500 Subject: [PATCH 08/28] Update to .NET SDK 8.0.100 and Runtime 8.0.11 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 1c3f091..e955080 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ /dotnet-8.0.8.tar.gz.sig /dotnet-8.0.10.tar.gz /dotnet-8.0.10.tar.gz.sig +/dotnet-8.0.11.tar.gz +/dotnet-8.0.11.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 4546fa9..75730a5 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -8,10 +8,10 @@ %global dotnetver 8.0 -%global host_version 8.0.10 -%global runtime_version 8.0.10 +%global host_version 8.0.11 +%global runtime_version 8.0.11 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.110 +%global sdk_version 8.0.111 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -724,6 +724,9 @@ export COMPlus_LTTng=0 %changelog +* Mon Nov 18 2024 Omair Majid - 8.0.111-1 +- Update to .NET SDK 8.0.111 and Runtime 8.0.11 + * Fri Oct 11 2024 Omair Majid - 8.0.110-1 - Update to .NET SDK 8.0.110 and Runtime 8.0.10 diff --git a/release.json b/release.json index 501d01c..6c2c717 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.10", + "release": "8.0.11", "channel": "8.0", - "tag": "v8.0.10", - "sdkVersion": "8.0.110", - "runtimeVersion": "8.0.10", - "aspNetCoreVersion": "8.0.10", + "tag": "v8.0.11", + "sdkVersion": "8.0.111", + "runtimeVersion": "8.0.11", + "aspNetCoreVersion": "8.0.11", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "8922fe64a1903ed4e35e24568efb056b3e0fad43" + "sourceVersion": "d5f3d652f9266d600777f626a9650a273419859b" } diff --git a/sources b/sources index e51e47c..26ce1d8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.10.tar.gz) = 5bb660d4bf750392d4022ceb02a7f76a04a8f789c9fbbde329019bc3e097fd7296984b52d29dfc027d31b7b4defdf3807f10e37a9696f8f0026c77cea6ad0d18 -SHA512 (dotnet-8.0.10.tar.gz.sig) = 364d1e4cddd01ac8c1c8298f981c08a8ff22a118d2c8b0aa9b2baa26899c4d28217c35922d71f9a65eb30a7329293de76de66ec495ca750a8f3fd1a479c30647 +SHA512 (dotnet-8.0.11.tar.gz) = 1bd689e560114d3cbe6a40d6608b0f5f493bef5e4d74f973c37d2e4bf88f999c769c12c390300f1d51094252a5791930c65547e1e4b8fa33387f995d296687f9 +SHA512 (dotnet-8.0.11.tar.gz.sig) = 32c104a7515149c182a41b5616a5c4ae3d8572f9a95480d41941bf93265c8cdf7eafad1f7ff243592b6188ebecd89272b3d9391fd20e4ad4111a6029fcf31c5e From 30c758610011be617b3fe0c9a8390a1bc241948b Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 10 Dec 2024 19:36:51 -0500 Subject: [PATCH 09/28] Fix ELN build ELN uses the x86-64-v3 microarchitecture level. That enables further optimizations by the compiler. Unfortunately, one of those optimization breaks the apphost. See https://github.com/dotnet/runtime/issues/109611 for details. Resolves: RHBZ#2321109 --- dotnet8.0.spec | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 75730a5..bfbcc11 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -530,6 +530,14 @@ CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/ -march=z13//') CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/ -mtune=z14//') %endif +%if 0%{rhel} >= 10 +# Workaround for https://github.com/dotnet/runtime/issues/109611 +# FIXME: Remove this, and replace with upstream fix +CFLAGS=$(echo $CFLAGS | sed -e 's/-march=x86-64-v3 //') +CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/-march=x86-64-v3 //') +LDFLAGS=$(echo $LDFLAGS | sed -e 's/-march=x86-64-v3 //') +%endif + export EXTRA_CFLAGS="$CFLAGS" export EXTRA_CXXFLAGS="$CXXFLAGS" export EXTRA_LDFLAGS="$LDFLAGS" @@ -724,6 +732,10 @@ export COMPlus_LTTng=0 %changelog +* Tue Dec 10 2024 Omair Majid - 8.0.111-2 +- Fix ELN build +- Resolves: RHBZ#2321109 + * Mon Nov 18 2024 Omair Majid - 8.0.111-1 - Update to .NET SDK 8.0.111 and Runtime 8.0.11 From d04385cf6b3ee74fce9f79bbd89a36ecc4169cb1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 16:09:23 +0000 Subject: [PATCH 10/28] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- dotnet8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index bfbcc11..37b51cc 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 3%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -732,6 +732,9 @@ export COMPlus_LTTng=0 %changelog +* Thu Jan 16 2025 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Tue Dec 10 2024 Omair Majid - 8.0.111-2 - Fix ELN build - Resolves: RHBZ#2321109 From 33353753eef2ec9fa6d557dc597accaa0f965d7d Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Fri, 17 Jan 2025 12:33:21 -0500 Subject: [PATCH 11/28] Update to .NET SDK 8.0.112 and Runtime 8.0.12 --- .gitignore | 2 ++ dotnet8.0.spec | 17 +++++++------ release.json | 12 ++++----- runtime-clang-19.patch | 55 ------------------------------------------ sources | 4 +-- update-release | 2 +- 6 files changed, 20 insertions(+), 72 deletions(-) delete mode 100644 runtime-clang-19.patch diff --git a/.gitignore b/.gitignore index e955080..02a6d58 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,5 @@ /dotnet-8.0.10.tar.gz.sig /dotnet-8.0.11.tar.gz /dotnet-8.0.11.tar.gz.sig +/dotnet-8.0.12.tar.gz +/dotnet-8.0.12.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 37b51cc..649c63d 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -8,10 +8,10 @@ %global dotnetver 8.0 -%global host_version 8.0.11 -%global runtime_version 8.0.11 +%global host_version 8.0.12 +%global runtime_version 8.0.12 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.111 +%global sdk_version 8.0.112 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -54,7 +54,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 3%{?dist} +Release: 1%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -92,13 +92,11 @@ Patch2: vstest-intent-net8.0.patch Patch3: runtime-re-enable-implicit-rejection.patch # https://github.com/dotnet/msbuild/pull/9449 Patch4: msbuild-9449-exec-stop-setting-a-locale.patch -# TODO -Patch5: runtime-clang-19.patch # We disable checking the signature of the last certificate in a chain if the certificate is supposedly self-signed. # A side effect of not checking the self-signature of such a certificate is that disabled or unsupported message # digests used for the signature are not treated as fatal errors. # https://issues.redhat.com/browse/RHEL-25254 -Patch6: runtime-openssl-sha1.patch +Patch5: runtime-openssl-sha1.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 @@ -530,7 +528,7 @@ CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/ -march=z13//') CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/ -mtune=z14//') %endif -%if 0%{rhel} >= 10 +%if 0%{?rhel} >= 10 # Workaround for https://github.com/dotnet/runtime/issues/109611 # FIXME: Remove this, and replace with upstream fix CFLAGS=$(echo $CFLAGS | sed -e 's/-march=x86-64-v3 //') @@ -732,6 +730,9 @@ export COMPlus_LTTng=0 %changelog +* Thu Jan 16 2025 Omair Majid - 8.0.112-1 +- Update to .NET SDK 8.0.112 and Runtime 8.0.12 + * Thu Jan 16 2025 Fedora Release Engineering - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/release.json b/release.json index 6c2c717..ed9ca06 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.11", + "release": "8.0.12", "channel": "8.0", - "tag": "v8.0.11", - "sdkVersion": "8.0.111", - "runtimeVersion": "8.0.11", - "aspNetCoreVersion": "8.0.11", + "tag": "v8.0.12", + "sdkVersion": "8.0.112", + "runtimeVersion": "8.0.12", + "aspNetCoreVersion": "8.0.12", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "d5f3d652f9266d600777f626a9650a273419859b" + "sourceVersion": "ab5d79b36d4f8a16f9f91f53fd6504b354c977b1" } diff --git a/runtime-clang-19.patch b/runtime-clang-19.patch deleted file mode 100644 index 9d24455..0000000 --- a/runtime-clang-19.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit e356f564bf74909e77d000e3ad1b8b43c30d070c (HEAD -> release/8.0) -Author: Omair Majid -Date: Tue Oct 15 14:53:33 2024 -0400 - - Fix clang19 build (#105141) - -diff --git a/src/runtime/src/coreclr/vm/comreflectioncache.hpp b/src/runtime/src/coreclr/vm/comreflectioncache.hpp -index 08d173e6164..12db55251d8 100644 ---- a/src/runtime/src/coreclr/vm/comreflectioncache.hpp -+++ b/src/runtime/src/coreclr/vm/comreflectioncache.hpp -@@ -26,6 +26,7 @@ public: - - void Init(); - -+#ifndef DACCESS_COMPILE - BOOL GetFromCache(Element *pElement, CacheType& rv) - { - CONTRACTL -@@ -102,6 +103,7 @@ public: - AdjustStamp(TRUE); - this->LeaveWrite(); - } -+#endif // !DACCESS_COMPILE - - private: - // Lock must have been taken before calling this. -@@ -141,6 +143,7 @@ private: - return CacheSize; - } - -+#ifndef DACCESS_COMPILE - void AdjustStamp(BOOL hasWriterLock) - { - CONTRACTL -@@ -170,6 +173,7 @@ private: - if (!hasWriterLock) - this->LeaveWrite(); - } -+#endif // !DACCESS_COMPILE - - void UpdateHashTable(SIZE_T hash, int slot) - { -diff --git a/src/runtime/src/native/libs/CMakeLists.txt b/src/runtime/src/native/libs/CMakeLists.txt -index b8ec2cf654c..ca8590985d6 100644 ---- a/src/runtime/src/native/libs/CMakeLists.txt -+++ b/src/runtime/src/native/libs/CMakeLists.txt -@@ -128,6 +128,8 @@ if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI) - add_compile_options(-Wno-cast-align) - add_compile_options(-Wno-typedef-redefinition) - add_compile_options(-Wno-c11-extensions) -+ add_compile_options(-Wno-pre-c11-compat) # fixes build on Debian -+ add_compile_options(-Wno-unknown-warning-option) # unknown warning option '-Wno-pre-c11-compat' - add_compile_options(-Wno-thread-safety-analysis) - if (CLR_CMAKE_TARGET_BROWSER) - add_compile_options(-Wno-unsafe-buffer-usage) diff --git a/sources b/sources index 26ce1d8..4b09a1b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.11.tar.gz) = 1bd689e560114d3cbe6a40d6608b0f5f493bef5e4d74f973c37d2e4bf88f999c769c12c390300f1d51094252a5791930c65547e1e4b8fa33387f995d296687f9 -SHA512 (dotnet-8.0.11.tar.gz.sig) = 32c104a7515149c182a41b5616a5c4ae3d8572f9a95480d41941bf93265c8cdf7eafad1f7ff243592b6188ebecd89272b3d9391fd20e4ad4111a6029fcf31c5e +SHA512 (dotnet-8.0.12.tar.gz) = d770a6c37de5c657d306a070c4c02c8f96b52a89184d46b946154cfcf470390f7483f8e38ea3a662d8234bc9fe8d7a1d48bf4cd144e4d3ff29fd36d36889f3a5 +SHA512 (dotnet-8.0.12.tar.gz.sig) = 5f9076ee3373a96acd7e20d1cb065a499369b6c3afaeb9a15bee568829cc7c2a75c39732b65c07f22a730e00d2b8c3b0a5c801cc00b1a983c7407c9c5b0f6564 diff --git a/update-release b/update-release index 78d84ee..36454b6 100755 --- a/update-release +++ b/update-release @@ -104,7 +104,7 @@ else cp -a "${user_provided_tarball_name}" "dotnet-${tag}.tar.gz" cp -a "${release_json}" release.json else - rm release.json + rm -f release.json spectool -g "$spec_file" fi fi From 90c350541bc70b450c99e9926c38ec445df1b17f Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Fri, 17 Jan 2025 18:20:08 -0500 Subject: [PATCH 12/28] Retry failed builds on pp64le and s390x Builds on ppc64le and s390x are known to have random crashes and hangs. Most of the time, another attempt at rebuilding fixes things. So lets put the rebuild logic in the RPM itself. --- dotnet8.0.spec | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 649c63d..8d1a6ea 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -545,7 +545,28 @@ export EXTRA_LDFLAGS="$LDFLAGS" # suggested compile-time change doesn't work, unfortunately. export COMPlus_LTTng=0 -VERBOSE=1 timeout 5h \ +%ifarch ppc64le s390x +max_attempts=3 +%else +max_attempts=1 +%endif + +function retry_until_success { + local exit_code=1 + local tries=$1 + shift + set +e + while [[ $exit_code != 0 ]] && [[ $tries != 0 ]]; do + (( tries = tries - 1 )) + "$@" + exit_code=$? + done + set -e + return $exit_code +} + +VERBOSE=1 retry_until_success $max_attempts \ + timeout 5h \ ./build.sh \ %if %{without bootstrap} --with-sdk previously-built-dotnet \ From da3d2323f56aeb52930530693040dd3caa9c8871 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Thu, 23 Jan 2025 14:58:22 -0500 Subject: [PATCH 13/28] Support disabling packages provided by another .NET version When a newer .NET version is released, the newer version version is expected to provide the `dotnet-host` RPM (and a few other subpackages). It's possible to end up in a situation where multiple .NET source packages are producing `dotnet-host` (and other subpackages). That causes confusion in terms of which package is put in the final repo-compose or updates repo. Most of the time it works. However, some tools/systems/tests straight up fail to handle this and start producing errors. And other times, there's a race about which package ends up in the compose. For more details, see: https://bugzilla.redhat.com/show_bug.cgi?id=2319834 This commit adds scaffolding so we can, in the future, stop producing the `dotnet-host` (and other subpackages) from this package, and rely on another .NET source package producing it. As it is, this should be a no-op change for now. --- dotnet8.0.spec | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 8d1a6ea..72e6080 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -8,6 +8,10 @@ %global dotnetver 8.0 +# Only the package for the latest dotnet version should provide RPMs like +# dotnet-host and netstandard-targeting-pack-2.1 +%global is_latest_dotnet 1 + %global host_version 8.0.12 %global runtime_version 8.0.12 %global aspnetcore_runtime_version %{runtime_version} @@ -392,7 +396,9 @@ applications using the .NET SDK. %dotnet_targeting_pack dotnet-apphost-pack-%{dotnetver} %{runtime_rpm_version} Microsoft.NETCore.App %{dotnetver} Microsoft.NETCore.App.Host.%{runtime_id} %dotnet_targeting_pack dotnet-targeting-pack-%{dotnetver} %{runtime_rpm_version} Microsoft.NETCore.App %{dotnetver} Microsoft.NETCore.App.Ref %dotnet_targeting_pack aspnetcore-targeting-pack-%{dotnetver} %{aspnetcore_runtime_rpm_version} Microsoft.AspNetCore.App %{dotnetver} Microsoft.AspNetCore.App.Ref +%if %{is_latest_dotnet} %dotnet_targeting_pack netstandard-targeting-pack-2.1 %{sdk_rpm_version} NETStandard.Library 2.1 NETStandard.Library.Ref +%endif %package -n dotnet-sdk-%{dotnetver}-source-built-artifacts @@ -628,6 +634,7 @@ find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.targets' -exec chmod -x {} find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.txt' -exec chmod -x {} \; find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.xml' -exec chmod -x {} \; +%if %{is_latest_dotnet} install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/ install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/ @@ -652,6 +659,7 @@ echo "%{_libdir}/dotnet" >> install_location install install_location %{buildroot}%{_sysconfdir}/dotnet/ echo "%{_libdir}/dotnet" >> install_location_%{runtime_arch} install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/ +%endif install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts install -m 0644 artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/ @@ -677,6 +685,21 @@ find %{buildroot}%{_libdir}/dotnet/sdk -type d | tail -n +2 | sed -E 's|%{buildr find %{buildroot}%{_libdir}/dotnet/sdk -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' >> dotnet-sdk-non-dbg-files find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-sdk-dbg-files +%if %{is_latest_dotnet} == 0 +# If this is an older version, self-test now, before we delete files. After we +# delete files, we will not have everything we need to self-test in %%check. +%{buildroot}%{_libdir}/dotnet/dotnet --info +%{buildroot}%{_libdir}/dotnet/dotnet --version + +# Provided by dotnet-host from another SRPM +rm %{buildroot}%{_libdir}/dotnet/LICENSE.txt +rm %{buildroot}%{_libdir}/dotnet/ThirdPartyNotices.txt +rm %{buildroot}%{_libdir}/dotnet/dotnet +# Provided by netstandard-targeting-pack-2.1 from another SRPM +rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0 +%endif + + %check %if 0%{?fedora} > 35 @@ -684,8 +707,10 @@ find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buil export COMPlus_LTTng=0 %endif +%if %{is_latest_dotnet} %{buildroot}%{_libdir}/dotnet/dotnet --info %{buildroot}%{_libdir}/dotnet/dotnet --version +%endif %if ( 0%{?fedora} && 0%{?fedora} < 38 ) || ( 0%{?rhel} && 0%{?rhel} < 9 ) @@ -693,6 +718,7 @@ export COMPlus_LTTng=0 # empty package useful for dependencies %endif +%if %{is_latest_dotnet} %files -n dotnet-host %dir %{_libdir}/dotnet %{_libdir}/dotnet/dotnet @@ -709,6 +735,7 @@ export COMPlus_LTTng=0 %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/dotnet %{_rpmmacrodir}/macros.dotnet +%endif %files -n dotnet-hostfxr-%{dotnetver} %dir %{_libdir}/dotnet/host/fxr From f56edf967d1d5790f49c055964db79492ace4be6 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Mon, 17 Feb 2025 22:25:08 -0500 Subject: [PATCH 14/28] Update to .NET SDK 8.0.113 and Runtime 8.0.13 --- .gitignore | 2 ++ dotnet8.0.spec | 11 +++++++---- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 02a6d58..a61fb93 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,5 @@ /dotnet-8.0.11.tar.gz.sig /dotnet-8.0.12.tar.gz /dotnet-8.0.12.tar.gz.sig +/dotnet-8.0.13.tar.gz +/dotnet-8.0.13.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 72e6080..ec0a468 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -10,12 +10,12 @@ # Only the package for the latest dotnet version should provide RPMs like # dotnet-host and netstandard-targeting-pack-2.1 -%global is_latest_dotnet 1 +%global is_latest_dotnet 0 -%global host_version 8.0.12 -%global runtime_version 8.0.12 +%global host_version 8.0.13 +%global runtime_version 8.0.13 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.112 +%global sdk_version 8.0.113 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -778,6 +778,9 @@ export COMPlus_LTTng=0 %changelog +* Mon Feb 17 2025 Omair Majid - 8.0.113-1 +- Update to .NET SDK 8.0.113 and Runtime 8.0.13 + * Thu Jan 16 2025 Omair Majid - 8.0.112-1 - Update to .NET SDK 8.0.112 and Runtime 8.0.12 diff --git a/release.json b/release.json index ed9ca06..c309f6c 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.12", + "release": "8.0.13", "channel": "8.0", - "tag": "v8.0.12", - "sdkVersion": "8.0.112", - "runtimeVersion": "8.0.12", - "aspNetCoreVersion": "8.0.12", + "tag": "v8.0.13", + "sdkVersion": "8.0.113", + "runtimeVersion": "8.0.13", + "aspNetCoreVersion": "8.0.13", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "ab5d79b36d4f8a16f9f91f53fd6504b354c977b1" + "sourceVersion": "a970a1cfdd960e99b4b8b9bdc3099b943f70adde" } diff --git a/sources b/sources index 4b09a1b..7d76e6e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.12.tar.gz) = d770a6c37de5c657d306a070c4c02c8f96b52a89184d46b946154cfcf470390f7483f8e38ea3a662d8234bc9fe8d7a1d48bf4cd144e4d3ff29fd36d36889f3a5 -SHA512 (dotnet-8.0.12.tar.gz.sig) = 5f9076ee3373a96acd7e20d1cb065a499369b6c3afaeb9a15bee568829cc7c2a75c39732b65c07f22a730e00d2b8c3b0a5c801cc00b1a983c7407c9c5b0f6564 +SHA512 (dotnet-8.0.13.tar.gz) = 2b6a94dc20003803c53da6589bf633f0cea776dcaee8e616c41e2047deff9b820339d9fba37087ff69e7eee0ba41a2231321d8f518885ec46429b69f5fe65e9f +SHA512 (dotnet-8.0.13.tar.gz.sig) = 108d323d1ed2dea151dec5aab163861404c869a0cd649eeff5f3e8cf913acb50624d6172d9e4642128b364135ccd7783865f8ba0960e1258d92781b70f764e0b From 1ba953bd6ee4d4ccb6ea10f039c0c402889ea040 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 18 Feb 2025 16:31:17 -0500 Subject: [PATCH 15/28] Fix building --- dotnet8.0.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index ec0a468..d1f5bff 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -697,6 +697,7 @@ rm %{buildroot}%{_libdir}/dotnet/ThirdPartyNotices.txt rm %{buildroot}%{_libdir}/dotnet/dotnet # Provided by netstandard-targeting-pack-2.1 from another SRPM rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0 +rm %{buildroot}%{_rpmmacrodir}/macros.dotnet %endif From ace7bedd9bf93534df8232231b4f14f09c96d3b4 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 12 Mar 2025 09:25:19 -0400 Subject: [PATCH 16/28] Update to .NET SDK 8.0.114 and Runtime 8.0.14 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index a61fb93..6215d71 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,5 @@ /dotnet-8.0.12.tar.gz.sig /dotnet-8.0.13.tar.gz /dotnet-8.0.13.tar.gz.sig +/dotnet-8.0.14.tar.gz +/dotnet-8.0.14.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index d1f5bff..a3bd28a 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.13 -%global runtime_version 8.0.13 +%global host_version 8.0.14 +%global runtime_version 8.0.14 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.113 +%global sdk_version 8.0.114 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Tue Mar 11 2025 Omair Majid - 8.0.114-1 +- Update to .NET SDK 8.0.114 and Runtime 8.0.14 + * Mon Feb 17 2025 Omair Majid - 8.0.113-1 - Update to .NET SDK 8.0.113 and Runtime 8.0.13 diff --git a/release.json b/release.json index c309f6c..43ebdb7 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.13", + "release": "8.0.14", "channel": "8.0", - "tag": "v8.0.13", - "sdkVersion": "8.0.113", - "runtimeVersion": "8.0.13", - "aspNetCoreVersion": "8.0.13", + "tag": "v8.0.14", + "sdkVersion": "8.0.114", + "runtimeVersion": "8.0.14", + "aspNetCoreVersion": "8.0.14", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "a970a1cfdd960e99b4b8b9bdc3099b943f70adde" + "sourceVersion": "b5416edd25debe775619037d6348bb672fb5da54" } diff --git a/sources b/sources index 7d76e6e..8081cd2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.13.tar.gz) = 2b6a94dc20003803c53da6589bf633f0cea776dcaee8e616c41e2047deff9b820339d9fba37087ff69e7eee0ba41a2231321d8f518885ec46429b69f5fe65e9f -SHA512 (dotnet-8.0.13.tar.gz.sig) = 108d323d1ed2dea151dec5aab163861404c869a0cd649eeff5f3e8cf913acb50624d6172d9e4642128b364135ccd7783865f8ba0960e1258d92781b70f764e0b +SHA512 (dotnet-8.0.14.tar.gz) = 281b97ffbb29a1f2cc6129ade17019257cc80a9ce62d2044ee19f2f80d1616578f1d82815a0e0ce8a7f7f8becd641785dfa6ae60de03dd41a764b24a9306f3e3 +SHA512 (dotnet-8.0.14.tar.gz.sig) = 08014a74030859a24a470f70b53d7479adf799223bc8e30d854b2da721bbca0020a6f307147db4af2ff24f453760947a9a6b4ace4e2e8d6ce49832636831318e From 2dd139583cd6fdede8d3ceea9e5e4128367e3464 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Thu, 10 Apr 2025 13:29:28 -0400 Subject: [PATCH 17/28] Update to .NET SDK 8.0.115 and Runtime 8.0.15 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 6215d71..410d535 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ /dotnet-8.0.13.tar.gz.sig /dotnet-8.0.14.tar.gz /dotnet-8.0.14.tar.gz.sig +/dotnet-8.0.15.tar.gz +/dotnet-8.0.15.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index a3bd28a..2146211 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.14 -%global runtime_version 8.0.14 +%global host_version 8.0.15 +%global runtime_version 8.0.15 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.114 +%global sdk_version 8.0.115 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Wed Apr 09 2025 Omair Majid - 8.0.115-1 +- Update to .NET SDK 8.0.115 and Runtime 8.0.15 + * Tue Mar 11 2025 Omair Majid - 8.0.114-1 - Update to .NET SDK 8.0.114 and Runtime 8.0.14 diff --git a/release.json b/release.json index 43ebdb7..430124b 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.14", + "release": "8.0.15", "channel": "8.0", - "tag": "v8.0.14", - "sdkVersion": "8.0.114", - "runtimeVersion": "8.0.14", - "aspNetCoreVersion": "8.0.14", + "tag": "v8.0.15", + "sdkVersion": "8.0.115", + "runtimeVersion": "8.0.15", + "aspNetCoreVersion": "8.0.15", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "b5416edd25debe775619037d6348bb672fb5da54" + "sourceVersion": "4d246579080efa41c77ddfa9ec8e133d7cf52666" } diff --git a/sources b/sources index 8081cd2..4240692 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.14.tar.gz) = 281b97ffbb29a1f2cc6129ade17019257cc80a9ce62d2044ee19f2f80d1616578f1d82815a0e0ce8a7f7f8becd641785dfa6ae60de03dd41a764b24a9306f3e3 -SHA512 (dotnet-8.0.14.tar.gz.sig) = 08014a74030859a24a470f70b53d7479adf799223bc8e30d854b2da721bbca0020a6f307147db4af2ff24f453760947a9a6b4ace4e2e8d6ce49832636831318e +SHA512 (dotnet-8.0.15.tar.gz) = 8f4888d7b8433c30d01e22a15289626464c92817259cf914d60c589f15f3a680ae4b19f512ec552e05caa132774aed0b8f17e91a8442be74eabf5e161b145584 +SHA512 (dotnet-8.0.15.tar.gz.sig) = 741fc45ac3a749363aa7c8b9d497d9b65bcd5d2d033fb9b509ea3ec917961141c1d1b0fee84841cf018ad08dfeab1eeb2f953c4bb6130eb2167422206606e275 From 3b8d5cf13fffc5a95ccec5d9fc94765ef922653f Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 13 May 2025 17:40:21 -0400 Subject: [PATCH 18/28] Update to .NET SDK 8.0.116 and Runtime 8.0.16 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 410d535..c7fa78f 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,5 @@ /dotnet-8.0.14.tar.gz.sig /dotnet-8.0.15.tar.gz /dotnet-8.0.15.tar.gz.sig +/dotnet-8.0.16.tar.gz +/dotnet-8.0.16.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 2146211..30e6431 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.15 -%global runtime_version 8.0.15 +%global host_version 8.0.16 +%global runtime_version 8.0.16 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.115 +%global sdk_version 8.0.116 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Tue May 13 2025 Omair Majid - 8.0.116-1 +- Update to .NET SDK 8.0.116 and Runtime 8.0.16 + * Wed Apr 09 2025 Omair Majid - 8.0.115-1 - Update to .NET SDK 8.0.115 and Runtime 8.0.15 diff --git a/release.json b/release.json index 430124b..c89fc7b 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.15", + "release": "8.0.16", "channel": "8.0", - "tag": "v8.0.15", - "sdkVersion": "8.0.115", - "runtimeVersion": "8.0.15", - "aspNetCoreVersion": "8.0.15", + "tag": "v8.0.16", + "sdkVersion": "8.0.116", + "runtimeVersion": "8.0.16", + "aspNetCoreVersion": "8.0.16", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "4d246579080efa41c77ddfa9ec8e133d7cf52666" + "sourceVersion": "82276892487288f85142cb1641df2b05dc9b937e" } diff --git a/sources b/sources index 4240692..7646d29 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.15.tar.gz) = 8f4888d7b8433c30d01e22a15289626464c92817259cf914d60c589f15f3a680ae4b19f512ec552e05caa132774aed0b8f17e91a8442be74eabf5e161b145584 -SHA512 (dotnet-8.0.15.tar.gz.sig) = 741fc45ac3a749363aa7c8b9d497d9b65bcd5d2d033fb9b509ea3ec917961141c1d1b0fee84841cf018ad08dfeab1eeb2f953c4bb6130eb2167422206606e275 +SHA512 (dotnet-8.0.16.tar.gz) = 6e83def1b60e3bc4888f5a8702c9e6b5420a7ff7229009e8fb2b8697b9a2c7cd750896e69b23d1f803f3c44af8fd7b4fbcaaed4fbc9a82e3bf1818e3a59ec939 +SHA512 (dotnet-8.0.16.tar.gz.sig) = c2a7821ed538b7d3b056b64aac347c1c2c158c34c41603ce058be9f405d69b0f8777001c2141b504111f829280179df75fbe4751e647f7ac0cc7a6111af8ddc6 From 77717639b3a7c609ee3b303cdd6839d755e3df3c Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 11 Jun 2025 23:39:44 -0400 Subject: [PATCH 19/28] Update to .NET SDK 8.0.117 and Runtime 8.0.17 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index c7fa78f..732446b 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,5 @@ /dotnet-8.0.15.tar.gz.sig /dotnet-8.0.16.tar.gz /dotnet-8.0.16.tar.gz.sig +/dotnet-8.0.17.tar.gz +/dotnet-8.0.17.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 30e6431..cdb7cf8 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.16 -%global runtime_version 8.0.16 +%global host_version 8.0.17 +%global runtime_version 8.0.17 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.116 +%global sdk_version 8.0.117 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Tue Jun 10 2025 Omair Majid - 8.0.117-1 +- Update to .NET SDK 8.0.117 and Runtime 8.0.17 + * Tue May 13 2025 Omair Majid - 8.0.116-1 - Update to .NET SDK 8.0.116 and Runtime 8.0.16 diff --git a/release.json b/release.json index c89fc7b..a81d552 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.16", + "release": "8.0.17", "channel": "8.0", - "tag": "v8.0.16", - "sdkVersion": "8.0.116", - "runtimeVersion": "8.0.16", - "aspNetCoreVersion": "8.0.16", + "tag": "v8.0.17", + "sdkVersion": "8.0.117", + "runtimeVersion": "8.0.17", + "aspNetCoreVersion": "8.0.17", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "82276892487288f85142cb1641df2b05dc9b937e" + "sourceVersion": "30c331373e55effdf3c799bdec8751e6ee5367f6" } diff --git a/sources b/sources index 7646d29..ae5124f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.16.tar.gz) = 6e83def1b60e3bc4888f5a8702c9e6b5420a7ff7229009e8fb2b8697b9a2c7cd750896e69b23d1f803f3c44af8fd7b4fbcaaed4fbc9a82e3bf1818e3a59ec939 -SHA512 (dotnet-8.0.16.tar.gz.sig) = c2a7821ed538b7d3b056b64aac347c1c2c158c34c41603ce058be9f405d69b0f8777001c2141b504111f829280179df75fbe4751e647f7ac0cc7a6111af8ddc6 +SHA512 (dotnet-8.0.17.tar.gz) = ec84d301b11d7c4f88423333eca12bc3a2bf4f93d1650ac2dd2eedb78b7bcc59385388553217fea9dea798526ee702a4977cedc19610a4e7ca17114adadee42b +SHA512 (dotnet-8.0.17.tar.gz.sig) = 4162f3d74431dfda333745813364dd9ed2a48cf8afbeb6103b6707f9d63ebda91532214059efaf63d26a4f46b68bd114a33f083857b47f405a75b8c23a741da3 From c1819a6183cb634e3e0e6925940347f4dec4aaba Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 8 Jul 2025 22:11:04 -0400 Subject: [PATCH 20/28] Update to .NET SDK 8.0.118 and Runtime 8.0.18 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 732446b..dd78b5d 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,5 @@ /dotnet-8.0.16.tar.gz.sig /dotnet-8.0.17.tar.gz /dotnet-8.0.17.tar.gz.sig +/dotnet-8.0.18.tar.gz +/dotnet-8.0.18.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index cdb7cf8..e5a1c8a 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.17 -%global runtime_version 8.0.17 +%global host_version 8.0.18 +%global runtime_version 8.0.18 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.117 +%global sdk_version 8.0.118 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Tue Jul 08 2025 Omair Majid - 8.0.118-1 +- Update to .NET SDK 8.0.118 and Runtime 8.0.18 + * Tue Jun 10 2025 Omair Majid - 8.0.117-1 - Update to .NET SDK 8.0.117 and Runtime 8.0.17 diff --git a/release.json b/release.json index a81d552..ea50ea9 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.17", + "release": "8.0.18", "channel": "8.0", - "tag": "v8.0.17", - "sdkVersion": "8.0.117", - "runtimeVersion": "8.0.17", - "aspNetCoreVersion": "8.0.17", + "tag": "v8.0.18", + "sdkVersion": "8.0.118", + "runtimeVersion": "8.0.18", + "aspNetCoreVersion": "8.0.18", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "30c331373e55effdf3c799bdec8751e6ee5367f6" + "sourceVersion": "f4d2dc9c002dee003c875b89729d1ce958c24a9e" } diff --git a/sources b/sources index ae5124f..1d45d07 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.17.tar.gz) = ec84d301b11d7c4f88423333eca12bc3a2bf4f93d1650ac2dd2eedb78b7bcc59385388553217fea9dea798526ee702a4977cedc19610a4e7ca17114adadee42b -SHA512 (dotnet-8.0.17.tar.gz.sig) = 4162f3d74431dfda333745813364dd9ed2a48cf8afbeb6103b6707f9d63ebda91532214059efaf63d26a4f46b68bd114a33f083857b47f405a75b8c23a741da3 +SHA512 (dotnet-8.0.18.tar.gz) = 01718854fc9cfb882409975b175b88ced4bf88a3242ed3268627db7f10375e578686025d55562ec3e889e7d432bfac100158a906c49ee516d60ce599be353637 +SHA512 (dotnet-8.0.18.tar.gz.sig) = e3dca32e81a6575e3eea8821c981d62a291c1af0fe8c5466693309c49d143e651b3c710c31b1a908549bd160536045168367d0d30f9414f36861721748823b3b From ae3319b02ed9d45d897bf5a7a4cbc8fc8a5fc880 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 19:29:11 +0000 Subject: [PATCH 21/28] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- dotnet8.0.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index e5a1c8a..7000478 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -58,7 +58,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 8.0.118-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jul 08 2025 Omair Majid - 8.0.118-1 - Update to .NET SDK 8.0.118 and Runtime 8.0.18 From d60a45471cf60effbf6334b444b8f11a8dc84a7f Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 6 Aug 2025 14:16:34 -0400 Subject: [PATCH 22/28] Update to .NET SDK 8.0.119 and Runtime 8.0.19 --- .gitignore | 2 ++ dotnet8.0.spec | 13 ++++++++----- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index dd78b5d..2910a12 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,5 @@ /dotnet-8.0.17.tar.gz.sig /dotnet-8.0.18.tar.gz /dotnet-8.0.18.tar.gz.sig +/dotnet-8.0.119.tar.gz +/dotnet-8.0.119.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 7000478..aa91670 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,16 +12,16 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.18 -%global runtime_version 8.0.18 +%global host_version 8.0.19 +%global runtime_version 8.0.19 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.118 +%global sdk_version 8.0.119 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') # upstream can produce releases with a different tag than the SDK version -%global upstream_tag v%{runtime_version} +%global upstream_tag v%{sdk_version} %global upstream_tag_without_v %(echo %{upstream_tag} | sed -e 's|^v||') %global host_rpm_version %{host_version} @@ -58,7 +58,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 1%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Wed Aug 06 2025 Omair Majid - 8.0.119-1 +- Update to .NET SDK 8.0.119 and Runtime 8.0.19 + * Wed Jul 23 2025 Fedora Release Engineering - 8.0.118-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/release.json b/release.json index ea50ea9..bfa46d1 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.18", + "release": "8.0.19", "channel": "8.0", - "tag": "v8.0.18", - "sdkVersion": "8.0.118", - "runtimeVersion": "8.0.18", - "aspNetCoreVersion": "8.0.18", + "tag": "v8.0.119", + "sdkVersion": "8.0.119", + "runtimeVersion": "8.0.19", + "aspNetCoreVersion": "8.0.19", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "f4d2dc9c002dee003c875b89729d1ce958c24a9e" + "sourceVersion": "8495bde0fe309967f88de93e358d6b6166ed47f8" } diff --git a/sources b/sources index 1d45d07..7c742d7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.18.tar.gz) = 01718854fc9cfb882409975b175b88ced4bf88a3242ed3268627db7f10375e578686025d55562ec3e889e7d432bfac100158a906c49ee516d60ce599be353637 -SHA512 (dotnet-8.0.18.tar.gz.sig) = e3dca32e81a6575e3eea8821c981d62a291c1af0fe8c5466693309c49d143e651b3c710c31b1a908549bd160536045168367d0d30f9414f36861721748823b3b +SHA512 (dotnet-8.0.119.tar.gz) = 1082cbdb27ec20432146e98601cf4eea6915f9a97c08c546354407f9090992d16523e5040c108e435c6d2d1540d0a8528cf9e6eed5f342fe8eeb606993476d34 +SHA512 (dotnet-8.0.119.tar.gz.sig) = 61b6df20bbac7736470e3b716236bdf7267db96060fed5dd80914ff14d6ff166e4a7ab16f1d25a3d684a8d690697e7c30cd6bfed80ab1635c2f072d588c83eb9 From 33d9a847020603f73de92b7519e82083a53e36ab Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Mon, 11 Aug 2025 12:20:47 -0400 Subject: [PATCH 23/28] Use the bundled version of libunwind We already do this a on a number of architecutres and operating systems, so it doesn't seem that risky. On the other hand, there are known issues using the system libunwind on Fedora: https://github.com/dotnet/runtime/issues/115217. --- dotnet8.0.spec | 8 -------- 1 file changed, 8 deletions(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index aa91670..bdfafb8 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -29,15 +29,7 @@ %global aspnetcore_runtime_rpm_version %{aspnetcore_runtime_version} %global sdk_rpm_version %{sdk_version} -%if 0%{?fedora} || 0%{?rhel} < 8 -%global use_bundled_libunwind 0 -%else %global use_bundled_libunwind 1 -%endif - -%ifarch aarch64 ppc64le s390x -%global use_bundled_libunwind 1 -%endif %ifarch aarch64 %global runtime_arch arm64 From f6c45b653627fb43dc0c3af4dc8d2eb27feb8ca2 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Mon, 15 Sep 2025 16:11:20 -0400 Subject: [PATCH 24/28] Update to .NET SDK 8.0.120 and Runtime 8.0.20 --- .gitignore | 2 ++ dotnet8.0.spec | 11 ++++++++--- release.json | 12 ++++++------ runtime-119706-clang-21.patch | 24 ++++++++++++++++++++++++ sources | 4 ++-- 5 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 runtime-119706-clang-21.patch diff --git a/.gitignore b/.gitignore index 2910a12..a44d335 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,5 @@ /dotnet-8.0.18.tar.gz.sig /dotnet-8.0.119.tar.gz /dotnet-8.0.119.tar.gz.sig +/dotnet-8.0.120.tar.gz +/dotnet-8.0.120.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index bdfafb8..d6c2dfb 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.19 -%global runtime_version 8.0.19 +%global host_version 8.0.20 +%global runtime_version 8.0.20 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.119 +%global sdk_version 8.0.120 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -93,6 +93,8 @@ Patch4: msbuild-9449-exec-stop-setting-a-locale.patch # digests used for the signature are not treated as fatal errors. # https://issues.redhat.com/browse/RHEL-25254 Patch5: runtime-openssl-sha1.patch +# https://github.com/dotnet/runtime/issues/119706#issuecomment-3292624673 +Patch6: runtime-119706-clang-21.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 @@ -771,6 +773,9 @@ export COMPlus_LTTng=0 %changelog +* Wed Sep 10 2025 Omair Majid - 8.0.120-1 +- Update to .NET SDK 8.0.120 and Runtime 8.0.20 + * Wed Aug 06 2025 Omair Majid - 8.0.119-1 - Update to .NET SDK 8.0.119 and Runtime 8.0.19 diff --git a/release.json b/release.json index bfa46d1..db2d0e9 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.19", + "release": "8.0.20", "channel": "8.0", - "tag": "v8.0.119", - "sdkVersion": "8.0.119", - "runtimeVersion": "8.0.19", - "aspNetCoreVersion": "8.0.19", + "tag": "v8.0.120", + "sdkVersion": "8.0.120", + "runtimeVersion": "8.0.20", + "aspNetCoreVersion": "8.0.20", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "8495bde0fe309967f88de93e358d6b6166ed47f8" + "sourceVersion": "6825a8d5c72c1893049c2c5ffa491b65cbcea7e0" } diff --git a/runtime-119706-clang-21.patch b/runtime-119706-clang-21.patch new file mode 100644 index 0000000..9d97b4a --- /dev/null +++ b/runtime-119706-clang-21.patch @@ -0,0 +1,24 @@ +diff --git dotnet/src/runtime/eng/native/configurecompiler.cmake dotnet/src/runtime/eng/native/configurecompiler.cmake +index d54d9b6803b..9438cb5af7e 100644 +--- dotnet/src/runtime/eng/native/configurecompiler.cmake ++++ dotnet/src/runtime/eng/native/configurecompiler.cmake +@@ -574,6 +574,7 @@ if (CLR_CMAKE_HOST_UNIX OR CLR_CMAKE_HOST_WASI) + add_compile_options(-Wno-unused-function) + add_compile_options(-Wno-tautological-compare) + add_compile_options(-Wno-unknown-pragmas) ++ add_compile_options(-Wno-c++-compat) + + # Explicitly enabled warnings + check_c_compiler_flag(-Wimplicit-fallthrough COMPILER_SUPPORTS_W_IMPLICIT_FALLTHROUGH) +diff --git dotnet/src/runtime/src/coreclr/pal/prebuilt/inc/cordebug.h dotnet/src/runtime/src/coreclr/pal/prebuilt/inc/cordebug.h +index 78b86c69ee9..1672d602d99 100644 +--- dotnet/src/runtime/src/coreclr/pal/prebuilt/inc/cordebug.h ++++ dotnet/src/runtime/src/coreclr/pal/prebuilt/inc/cordebug.h +@@ -10036,6 +10036,7 @@ EXTERN_C const IID IID_ICorDebugRegisterSet2; + typedef + enum CorDebugUserState + { ++ CORDEBUG_INVALID = -1, + USER_STOP_REQUESTED = 0x1, + USER_SUSPEND_REQUESTED = 0x2, + USER_BACKGROUND = 0x4, diff --git a/sources b/sources index 7c742d7..f3ae3a7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.119.tar.gz) = 1082cbdb27ec20432146e98601cf4eea6915f9a97c08c546354407f9090992d16523e5040c108e435c6d2d1540d0a8528cf9e6eed5f342fe8eeb606993476d34 -SHA512 (dotnet-8.0.119.tar.gz.sig) = 61b6df20bbac7736470e3b716236bdf7267db96060fed5dd80914ff14d6ff166e4a7ab16f1d25a3d684a8d690697e7c30cd6bfed80ab1635c2f072d588c83eb9 +SHA512 (dotnet-8.0.120.tar.gz) = 00ab2528520490d3f2bd3acaa8d499f3e1afeb9e26a8526c5a66530b5bc2456bdf2dfd96dbac9b5319e2c74b258e9511883b0ab4b5883e739932c2fc66276172 +SHA512 (dotnet-8.0.120.tar.gz.sig) = 64b8acde4d9ec8ca2aade93d5677ceabf2db174905a53ed30583af1f8daa2ad4861cb49d9e28fd696960f23c8a464a8df6cec23a9cd9b1a7b8be5581dfe85563 From 792ab86b6ed722ca228a499d388941a81f2fd01f Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 29 Oct 2025 12:11:45 -0400 Subject: [PATCH 25/28] Don't use clang 21 --- dotnet8.0.spec | 11 ++++++++++- runtime-clang-20-support.patch | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 runtime-clang-20-support.patch diff --git a/dotnet8.0.spec b/dotnet8.0.spec index d6c2dfb..7d11800 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -50,7 +50,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -95,12 +95,18 @@ Patch4: msbuild-9449-exec-stop-setting-a-locale.patch Patch5: runtime-openssl-sha1.patch # https://github.com/dotnet/runtime/issues/119706#issuecomment-3292624673 Patch6: runtime-119706-clang-21.patch +# TODO send upstream +Patch7: runtime-clang-20-support.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 +%if 0%{?fedora} >= 43 +BuildRequires: clang20 +%else BuildRequires: clang +%endif BuildRequires: cmake BuildRequires: coreutils %if %{without bootstrap} @@ -773,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Tue Oct 28 2025 Omair Majid - 8.0.120-2 +- Don't use clang 21 + * Wed Sep 10 2025 Omair Majid - 8.0.120-1 - Update to .NET SDK 8.0.120 and Runtime 8.0.20 diff --git a/runtime-clang-20-support.patch b/runtime-clang-20-support.patch new file mode 100644 index 0000000..bffcf79 --- /dev/null +++ b/runtime-clang-20-support.patch @@ -0,0 +1,22 @@ +--- a/eng/common/native/init-compiler.sh ++++ b/eng/common/native/init-compiler.sh +@@ -63,7 +63,7 @@ + # Set default versions + if [ -z "$majorVersion" ]; then + # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. +- if [ "$compiler" = "clang" ]; then versions="18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" ++ if [ "$compiler" = "clang" ]; then versions="20 19 18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" + elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi + + for version in $versions; do +--- a/src/runtime/eng/common/native/init-compiler.sh ++++ b/src/runtime/eng/common/native/init-compiler.sh +@@ -63,7 +63,7 @@ + # Set default versions + if [ -z "$majorVersion" ]; then + # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. +- if [ "$compiler" = "clang" ]; then versions="18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" ++ if [ "$compiler" = "clang" ]; then versions="20 19 18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" + elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi + + for version in $versions; do From 3956e98b1fd134bd3283299d325e49dacda193e2 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Thu, 30 Oct 2025 13:42:16 -0400 Subject: [PATCH 26/28] Update to .NET SDK 8.0.121 and Runtime 8.0.21 --- .gitignore | 2 ++ dotnet8.0.spec | 11 +++++++---- release.json | 12 ++++++------ sources | 4 ++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index a44d335..26fe15c 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ /dotnet-8.0.119.tar.gz.sig /dotnet-8.0.120.tar.gz /dotnet-8.0.120.tar.gz.sig +/dotnet-8.0.121.tar.gz +/dotnet-8.0.121.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 7d11800..470ad4c 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.20 -%global runtime_version 8.0.20 +%global host_version 8.0.21 +%global runtime_version 8.0.21 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.120 +%global sdk_version 8.0.121 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -50,7 +50,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 1%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Thu Oct 30 2025 Omair Majid - 8.0.121-1 +- Update to .NET SDK 8.0.121 and Runtime 8.0.21 + * Tue Oct 28 2025 Omair Majid - 8.0.120-2 - Don't use clang 21 diff --git a/release.json b/release.json index db2d0e9..9ed73aa 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.20", + "release": "8.0.21", "channel": "8.0", - "tag": "v8.0.120", - "sdkVersion": "8.0.120", - "runtimeVersion": "8.0.20", - "aspNetCoreVersion": "8.0.20", + "tag": "v8.0.121", + "sdkVersion": "8.0.121", + "runtimeVersion": "8.0.21", + "aspNetCoreVersion": "8.0.21", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "6825a8d5c72c1893049c2c5ffa491b65cbcea7e0" + "sourceVersion": "eed318ae2d2a3b35d344b9ec73c361265a938310" } diff --git a/sources b/sources index f3ae3a7..783c2f3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.120.tar.gz) = 00ab2528520490d3f2bd3acaa8d499f3e1afeb9e26a8526c5a66530b5bc2456bdf2dfd96dbac9b5319e2c74b258e9511883b0ab4b5883e739932c2fc66276172 -SHA512 (dotnet-8.0.120.tar.gz.sig) = 64b8acde4d9ec8ca2aade93d5677ceabf2db174905a53ed30583af1f8daa2ad4861cb49d9e28fd696960f23c8a464a8df6cec23a9cd9b1a7b8be5581dfe85563 +SHA512 (dotnet-8.0.121.tar.gz) = 129f7a2b214f538a94e9cf6d84dfabb23e02aed25218ee11da5903bda87254840962e79c03c02dc7c6d70679a01c33ee3c90ddcde64480d7391d95995f3cffb0 +SHA512 (dotnet-8.0.121.tar.gz.sig) = bfaefb6757751f3b0914594f5f990c9df1f3dd802d5865d9f4db52538300877a8bc61881e6a6861b5b90c5c4e7a463f0f379c4f424329ad805dac61c68327108 From 48529b81907440b3c3771381282f3436cedc9e85 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 19 Nov 2025 08:48:45 -0500 Subject: [PATCH 27/28] Update to .NET SDK 8.0.122 and Runtime 8.0.22 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- gating.yaml | 1 - release.json | 12 ++++++------ sources | 4 ++-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 26fe15c..581c85d 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,5 @@ /dotnet-8.0.120.tar.gz.sig /dotnet-8.0.121.tar.gz /dotnet-8.0.121.tar.gz.sig +/dotnet-8.0.122.tar.gz +/dotnet-8.0.122.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 470ad4c..a1ce977 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.21 -%global runtime_version 8.0.21 +%global host_version 8.0.22 +%global runtime_version 8.0.22 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.121 +%global sdk_version 8.0.122 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Mon Nov 17 2025 Omair Majid - 8.0.122-1 +- Update to .NET SDK 8.0.122 and Runtime 8.0.22 + * Thu Oct 30 2025 Omair Majid - 8.0.121-1 - Update to .NET SDK 8.0.121 and Runtime 8.0.21 diff --git a/gating.yaml b/gating.yaml index b7ab3d1..6b6a8a9 100644 --- a/gating.yaml +++ b/gating.yaml @@ -20,4 +20,3 @@ product_versions: decision_context: osci_compose_gate rules: - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.other-archs.functional} diff --git a/release.json b/release.json index 9ed73aa..bd5ac42 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.21", + "release": "8.0.22", "channel": "8.0", - "tag": "v8.0.121", - "sdkVersion": "8.0.121", - "runtimeVersion": "8.0.21", - "aspNetCoreVersion": "8.0.21", + "tag": "v8.0.122", + "sdkVersion": "8.0.122", + "runtimeVersion": "8.0.22", + "aspNetCoreVersion": "8.0.22", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "eed318ae2d2a3b35d344b9ec73c361265a938310" + "sourceVersion": "e0cc6f889abcb72068cda168d9398cf3e037b5e7" } diff --git a/sources b/sources index 783c2f3..b7a4328 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.121.tar.gz) = 129f7a2b214f538a94e9cf6d84dfabb23e02aed25218ee11da5903bda87254840962e79c03c02dc7c6d70679a01c33ee3c90ddcde64480d7391d95995f3cffb0 -SHA512 (dotnet-8.0.121.tar.gz.sig) = bfaefb6757751f3b0914594f5f990c9df1f3dd802d5865d9f4db52538300877a8bc61881e6a6861b5b90c5c4e7a463f0f379c4f424329ad805dac61c68327108 +SHA512 (dotnet-8.0.122.tar.gz) = 9743b8c0a795a220aa00e97189da41573f6490da27a8ad0e4f55167cccbdaf4f3f2e6356dd0b1d9d6f7693308d36dba9dbd3d271daad0556c66d7edf6490a47f +SHA512 (dotnet-8.0.122.tar.gz.sig) = aa265e965055ea9a82e68fecf613c713aa68f89c39b7f7090bc46d16067bd43b8f96f3fef7247cf3a8e71caed15685564f1838141dec53c97152c302a087db0e From 56cf02370c539e40c08d7414a7b98814f7b16e25 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 14 Jan 2026 13:06:05 -0500 Subject: [PATCH 28/28] Update to .NET SDK 8.0.123 and Runtime 8.0.23 --- .gitignore | 2 ++ dotnet8.0.spec | 9 ++++++--- release.json | 12 ++++++------ sources | 4 ++-- tests/ci.fmf | 6 ++++-- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 581c85d..373b232 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,5 @@ /dotnet-8.0.121.tar.gz.sig /dotnet-8.0.122.tar.gz /dotnet-8.0.122.tar.gz.sig +/dotnet-8.0.123.tar.gz +/dotnet-8.0.123.tar.gz.sig diff --git a/dotnet8.0.spec b/dotnet8.0.spec index a1ce977..6cc1b3a 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -12,10 +12,10 @@ # dotnet-host and netstandard-targeting-pack-2.1 %global is_latest_dotnet 0 -%global host_version 8.0.22 -%global runtime_version 8.0.22 +%global host_version 8.0.23 +%global runtime_version 8.0.23 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.122 +%global sdk_version 8.0.123 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -779,6 +779,9 @@ export COMPlus_LTTng=0 %changelog +* Tue Jan 13 2026 Omair Majid - 8.0.123-1 +- Update to .NET SDK 8.0.123 and Runtime 8.0.23 + * Mon Nov 17 2025 Omair Majid - 8.0.122-1 - Update to .NET SDK 8.0.122 and Runtime 8.0.22 diff --git a/release.json b/release.json index bd5ac42..15390f5 100644 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.22", + "release": "8.0.23", "channel": "8.0", - "tag": "v8.0.122", - "sdkVersion": "8.0.122", - "runtimeVersion": "8.0.22", - "aspNetCoreVersion": "8.0.22", + "tag": "v8.0.123", + "sdkVersion": "8.0.123", + "runtimeVersion": "8.0.23", + "aspNetCoreVersion": "8.0.23", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "e0cc6f889abcb72068cda168d9398cf3e037b5e7" + "sourceVersion": "fafff0660ef23ca2ece1444119524a76e0f4d4a4" } diff --git a/sources b/sources index b7a4328..c823863 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-8.0.122.tar.gz) = 9743b8c0a795a220aa00e97189da41573f6490da27a8ad0e4f55167cccbdaf4f3f2e6356dd0b1d9d6f7693308d36dba9dbd3d271daad0556c66d7edf6490a47f -SHA512 (dotnet-8.0.122.tar.gz.sig) = aa265e965055ea9a82e68fecf613c713aa68f89c39b7f7090bc46d16067bd43b8f96f3fef7247cf3a8e71caed15685564f1838141dec53c97152c302a087db0e +SHA512 (dotnet-8.0.123.tar.gz) = 650372d872a91945b5b1f45a72a0fad97a068eec66add2278ae2cfe1196ca109e1c5d02eab389a28790b38f7dcee4731c165fade6c93849c4551b0b40055618c +SHA512 (dotnet-8.0.123.tar.gz.sig) = d5e88940fb4768674629b5b8fd321cee0432331da72397b226069320312b69deb9b06663f443fd2509e9a983a8360e64ee6e08d20008c48c77bb9ae35044b318 diff --git a/tests/ci.fmf b/tests/ci.fmf index f7e9bee..44ebb2c 100644 --- a/tests/ci.fmf +++ b/tests/ci.fmf @@ -1,7 +1,9 @@ summary: Basic smoke test provision: - disk: 20 - memory: 5120 + hardware: + disk: + - size: ">= 20 GiB" + memory: ">= 5120 MiB" prepare: how: install package: