From e734f720066155932dfcd35abff65922dfea0589 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Dec 2025 00:28:35 +0000 Subject: [PATCH 1/6] Initial plan From efd6985900c9b91c797c280e0fc1c4236ae56ed9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Dec 2025 00:49:11 +0000 Subject: [PATCH 2/6] Update OpenSUSE testing from 15.6 to 16.0 Co-authored-by: richlander <2608468+richlander@users.noreply.github.com> --- eng/pipelines/helix-platforms.yml | 4 ++-- eng/pipelines/libraries/helix-queues-setup.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/helix-platforms.yml b/eng/pipelines/helix-platforms.yml index 212d3709e45a91..b98b9caca7dc3b 100644 --- a/eng/pipelines/helix-platforms.yml +++ b/eng/pipelines/helix-platforms.yml @@ -130,9 +130,9 @@ variables: value: (Fedora.42.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-42-helix-amd64 # openSUSE x64 - # Latest: 15.6 + # Latest: 16.0 - name: helix_linux_x64_opensuse_latest - value: (openSUSE.15.6.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-15.6-helix-amd64 + value: (openSUSE.16.0.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-16.0-helix-amd64 # Oldest: 15.5 - name: helix_linux_x64_opensuse_oldest diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 92494860e9aa70..61cbab9df46b60 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -63,7 +63,7 @@ jobs: # extra-platforms CoreCLR (inner loop only) - (Debian.13.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-amd64 - (Fedora.43.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-43-helix-amd64 - - (openSUSE.15.6.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-15.6-helix-amd64 + - (openSUSE.16.0.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-16.0-helix-amd64 - (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-amd64 - ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}: From dd80e972da1018c82ab1bd3e530979590cbba442 Mon Sep 17 00:00:00 2001 From: Tarek Mahmoud Sayed Date: Thu, 8 Jan 2026 20:43:38 +0000 Subject: [PATCH 3/6] Fix time parsing with AM designator be prefix to PM designator --- .../src/System/Globalization/DateTimeParse.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs index 35b7b7973ffcc7..7bb7e0c87b74c4 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs @@ -3749,6 +3749,16 @@ private static bool MatchTimeMark(ref __DTString str, DateTimeFormatInfo dtfi, s { if (str.MatchSpecifiedWord(searchStr)) { + string searchStr1 = dtfi.PMDesignator; + if (searchStr1.Length > searchStr.Length && searchStr1.StartsWith(searchStr, StringComparison.Ordinal) && str.MatchSpecifiedWord(searchStr1)) + { + // If both AM and PM designators are prefixes of each other, we should + // prefer the longer match. + str.Index += (searchStr1.Length - 1); + result = TM.PM; + return true; + } + // Found an AM timemark with length > 0. str.Index += (searchStr.Length - 1); result = TM.AM; From fd0a321952ba44fa1e572f50168b8b44bff6e5c8 Mon Sep 17 00:00:00 2001 From: Tarek Mahmoud Sayed Date: Fri, 9 Jan 2026 13:46:02 -0800 Subject: [PATCH 4/6] Revert "Fix time parsing with AM designator be prefix to PM designator" This reverts commit dd80e972da1018c82ab1bd3e530979590cbba442. --- .../src/System/Globalization/DateTimeParse.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs index 7bb7e0c87b74c4..35b7b7973ffcc7 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs @@ -3749,16 +3749,6 @@ private static bool MatchTimeMark(ref __DTString str, DateTimeFormatInfo dtfi, s { if (str.MatchSpecifiedWord(searchStr)) { - string searchStr1 = dtfi.PMDesignator; - if (searchStr1.Length > searchStr.Length && searchStr1.StartsWith(searchStr, StringComparison.Ordinal) && str.MatchSpecifiedWord(searchStr1)) - { - // If both AM and PM designators are prefixes of each other, we should - // prefer the longer match. - str.Index += (searchStr1.Length - 1); - result = TM.PM; - return true; - } - // Found an AM timemark with length > 0. str.Index += (searchStr.Length - 1); result = TM.AM; From 76172e87050b94e2b24edd5e391d2d381773d3ec Mon Sep 17 00:00:00 2001 From: Tomas Weinfurt Date: Fri, 16 Jan 2026 12:03:18 -0800 Subject: [PATCH 5/6] use managed NTLM on OpenSUSE 16 --- .../Common/tests/TestUtilities/System/PlatformDetection.Unix.cs | 1 + .../tests/UnitTests/NegotiateAuthenticationTests.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs index fa79e2845b4dad..e8dc7924a9bad5 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs @@ -17,6 +17,7 @@ public static partial class PlatformDetection public static bool IsLinux => RuntimeInformation.IsOSPlatform(OSPlatform.Linux); public static bool IsOpenSUSE => IsDistroAndVersion("opensuse"); + public static bool IsOpenSUSE16 => IsDistroAndVersion("opensuse", 16); public static bool IsUbuntu => IsDistroAndVersion("ubuntu"); public static bool IsUbuntu26 => IsDistroAndVersion("ubuntu", 26); public static bool IsUbuntu24 => IsDistroAndVersion("ubuntu", 24); diff --git a/src/libraries/System.Net.Security/tests/UnitTests/NegotiateAuthenticationTests.cs b/src/libraries/System.Net.Security/tests/UnitTests/NegotiateAuthenticationTests.cs index 433c3dfe269ae6..e17aa64b85436f 100644 --- a/src/libraries/System.Net.Security/tests/UnitTests/NegotiateAuthenticationTests.cs +++ b/src/libraries/System.Net.Security/tests/UnitTests/NegotiateAuthenticationTests.cs @@ -18,7 +18,7 @@ namespace System.Net.Security.Tests public class NegotiateAuthenticationTests { // Ubuntu 24 and 26 ship with broekn gss-ntlmssp 1.2 - private static bool UseManagedNtlm => PlatformDetection.IsUbuntu24 || PlatformDetection.IsUbuntu26; + private static bool UseManagedNtlm => PlatformDetection.IsUbuntu24 || PlatformDetection.IsUbuntu26 || PlatformDetection.IsOpenSUSE16; private static bool IsNtlmAvailable => UseManagedNtlm || Capability.IsNtlmInstalled() || OperatingSystem.IsAndroid() || OperatingSystem.IsTvOS(); private static bool IsNtlmUnavailable => !IsNtlmAvailable; From f7bb265f78bf5178a208ffab6eb24f291e34e2e8 Mon Sep 17 00:00:00 2001 From: wfurt Date: Mon, 19 Jan 2026 02:24:57 +0000 Subject: [PATCH 6/6] suse --- .../Common/tests/TestUtilities/System/PlatformDetection.Unix.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs index e8dc7924a9bad5..1383c8f7e062d6 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs @@ -17,7 +17,7 @@ public static partial class PlatformDetection public static bool IsLinux => RuntimeInformation.IsOSPlatform(OSPlatform.Linux); public static bool IsOpenSUSE => IsDistroAndVersion("opensuse"); - public static bool IsOpenSUSE16 => IsDistroAndVersion("opensuse", 16); + public static bool IsOpenSUSE16 => IsDistroAndVersion("opensuse", 16) || IsDistroAndVersion("opensuse-leap", 16); public static bool IsUbuntu => IsDistroAndVersion("ubuntu"); public static bool IsUbuntu26 => IsDistroAndVersion("ubuntu", 26); public static bool IsUbuntu24 => IsDistroAndVersion("ubuntu", 24);