From b237532a0f6ee04ccdee1964c44b91bb75fdce6b Mon Sep 17 00:00:00 2001 From: Tianyue Lan Date: Thu, 6 Oct 2022 10:17:55 -0700 Subject: [PATCH] Set TargetRid based on os release major version Also added OL arm64 RuntimeIdentifier [Orabug:34671152] Signed-Off-By: Tianyue.Lan@oracle.com Updated for ol9u1 src/diagnostics/eng/native/init-distro-rid.sh renamed src/diagnostics/eng/init-distro-rid.sh and updated for context change. Signed-Off-By: John.Mcwalters@oracle.com --- .../Native/PlatformApis.cs | 2 +- .../eng/native/init-distro-rid.sh | 2 +- src/diagnostics/eng/init-distro-rid.sh | 2 +- src/runtime/eng/native/init-distro-rid.sh | 2 +- .../System/PlatformDetection.Unix.cs | 2 +- .../src/Microsoft.NETCore.Platforms.csproj | 2 +- .../src/runtime.compatibility.json | 70 +++++++++++++++++++ .../src/runtime.json | 33 +++++++++ .../src/runtimeGroups.props | 4 +- .../src/native/corehost/hostmisc/pal.unix.cpp | 7 +- .../RuntimeEnvironment.cs | 2 +- 11 files changed, 118 insertions(+), 10 deletions(-) diff --git a/src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs b/src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs index 80fcf45e4..4d94dc27b 100644 --- a/src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs +++ b/src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs @@ -131,7 +131,7 @@ private static DistroInfo NormalizeDistroInfo(DistroInfo distroInfo) // Handle if VersionId is null by just setting the index to -1. int minorVersionNumberSeparatorIndex = distroInfo.VersionId?.IndexOf('.') ?? -1; - if (distroInfo.Id == "rhel" && minorVersionNumberSeparatorIndex != -1) + if ((distroInfo.Id == "rhel" || distroInfo.Id == "ol") && minorVersionNumberSeparatorIndex != -1) { distroInfo.VersionId = distroInfo.VersionId.Substring(0, minorVersionNumberSeparatorIndex); } diff --git a/src/deployment-tools/eng/native/init-distro-rid.sh b/src/deployment-tools/eng/native/init-distro-rid.sh index 22efd8e8b..28ea80898 100644 --- a/src/deployment-tools/eng/native/init-distro-rid.sh +++ b/src/deployment-tools/eng/native/init-distro-rid.sh @@ -41,7 +41,7 @@ initNonPortableDistroRid() # We have forced __PortableBuild=0. This is because -portablebuld # has been passed as false. if (( isPortable == 0 )); then - if [ "${ID}" = "rhel" ]; then + if [[ "${ID}" == "rhel" || "${ID}" == "ol" ]]; then # remove the last version digit VERSION_ID="${VERSION_ID%.*}" fi diff --git a/src/diagnostics/eng/native/init-distro-rid.sh b/src/diagnostics/eng/native/init-distro-rid.sh index 97fd647..ef2284c 100644 --- a/src/diagnostics/eng/native/init-distro-rid.sh +++ b/src/diagnostics/eng/native/init-distro-rid.sh @@ -41,7 +41,7 @@ initNonPortableDistroRid() # We have forced __PortableBuild=0. This is because -portablebuld # has been passed as false. if (( isPortable == 0 )); then - if [[ "${ID}" == "rhel" || "${ID}" == "rocky" ]]; then + if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "ol" ]]; then # remove the last version digit VERSION_ID="${VERSION_ID%.*}" fi diff --git a/src/runtime/eng/native/init-distro-rid.sh b/src/runtime/eng/native/init-distro-rid.sh index 750122406..fe6d8ffa2 100644 --- a/src/runtime/eng/native/init-distro-rid.sh +++ b/src/runtime/eng/native/init-distro-rid.sh @@ -41,7 +41,7 @@ initNonPortableDistroRid() # We have forced __PortableBuild=0. This is because -portablebuld # has been passed as false. if (( isPortable == 0 )); then - if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then + if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" || "${ID}" == "ol" ]]; then # remove the last version digit VERSION_ID="${VERSION_ID%.*}" fi diff --git a/src/runtime/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs b/src/runtime/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs index 33c4f5f93..600c20024 100644 --- a/src/runtime/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs +++ b/src/runtime/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs @@ -258,7 +258,7 @@ private static DistroInfo GetDistroInfo() private static bool IsRedHatFamilyAndVersion(int major = -1, int minor = -1, int build = -1, int revision = -1) { - return IsDistroAndVersion((distro) => distro == "rhel" || distro == "centos", major, minor, build, revision); + return IsDistroAndVersion((distro) => distro == "rhel" || distro == "centos" || distro == "ol", major, minor, build, revision); } /// diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj index 482e0b70e..681ad6c2b 100644 --- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj +++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj @@ -76,7 +76,7 @@ RuntimeJson="runtime.json" CompatibilityMap="runtime.compatibility.json" RuntimeDirectedGraph="$(OutputPath)runtime.json.dgml" - UpdateRuntimeFiles="$(UpdateRuntimeFiles)" /> + UpdateRuntimeFiles="true" /> diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json index 15c8c0a74..77a0fcfd3 100644 --- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json +++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json @@ -4938,6 +4938,18 @@ "any", "base" ], + "ol-arm64": [ + "ol-arm64", + "ol", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], "ol.7": [ "ol.7", "ol", @@ -5324,6 +5336,22 @@ "any", "base" ], + "ol.8-arm64": [ + "ol.8-arm64", + "ol.8", + "ol-arm64", + "rhel.8-arm64", + "ol", + "rhel.8", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], "ol.8-x64": [ "ol.8-x64", "ol.8", @@ -5372,6 +5400,48 @@ "any", "base" ], + "ol.9": [ + "ol.9", + "ol", + "rhel.9", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.9-arm64": [ + "ol.9-arm64", + "ol.9", + "ol-arm64", + "rhel.9-arm64", + "ol", + "rhel.9", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ol.9-x64": [ + "ol.9-x64", + "ol.9", + "ol-x64", + "rhel.9-x64", + "ol", + "rhel.9", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], "omnios": [ "omnios", "illumos", diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json index 050ce1e4e..71763c670 100644 --- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json +++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json @@ -1933,6 +1933,12 @@ "rhel-x64" ] }, + "ol-arm64": { + "#import": [ + "ol", + "rhel-arm64" + ] + }, "ol.7": { "#import": [ "ol", @@ -2050,6 +2056,13 @@ "rhel.8-x64" ] }, + "ol.8-arm64": { + "#import": [ + "ol.8", + "ol-arm64", + "rhel.8-arm64" + ] + }, "ol.8.0": { "#import": [ "ol.8", @@ -2063,6 +2076,26 @@ "rhel.8.0-x64" ] }, + "ol.9": { + "#import": [ + "ol", + "rhel.9" + ] + }, + "ol.9-arm64": { + "#import": [ + "ol.9", + "ol-arm64", + "rhel.9-arm64" + ] + }, + "ol.9-x64": { + "#import": [ + "ol.9", + "ol-x64", + "rhel.9-x64" + ] + }, "omnios": { "#import": [ "illumos" diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props index 1b10a2604..dc57d4580 100644 --- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props +++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props @@ -157,8 +157,8 @@ rhel - x64 - 8;8.0 + x64;arm64 + 8;8.0;9 true diff --git a/src/runtime/src/native/corehost/hostmisc/pal.unix.cpp b/src/runtime/src/native/corehost/hostmisc/pal.unix.cpp index 422c966a3..b4ab15c15 100644 --- a/src/runtime/src/native/corehost/hostmisc/pal.unix.cpp +++ b/src/runtime/src/native/corehost/hostmisc/pal.unix.cpp @@ -764,12 +764,17 @@ pal::string_t pal::get_current_os_rid_platform() static pal::string_t normalize_linux_rid(pal::string_t rid) { + pal::string_t olPrefix(_X("ol.")); pal::string_t rhelPrefix(_X("rhel.")); pal::string_t alpinePrefix(_X("alpine.")); pal::string_t rockyPrefix(_X("rocky.")); size_t lastVersionSeparatorIndex = std::string::npos; - if (rid.compare(0, rhelPrefix.length(), rhelPrefix) == 0) + if (rid.compare(0, olPrefix.length(), olPrefix) == 0) + { + lastVersionSeparatorIndex = rid.find(_X("."), olPrefix.length()); + } + else if (rid.compare(0, rhelPrefix.length(), rhelPrefix) == 0) { lastVersionSeparatorIndex = rid.find(_X("."), rhelPrefix.length()); } diff --git a/src/sdk/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs b/src/sdk/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs index 11d42fda8..877bb2050 100644 --- a/src/sdk/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs +++ b/src/sdk/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs @@ -220,7 +220,7 @@ private static DistroInfo NormalizeDistroInfo(DistroInfo distroInfo) lastVersionNumberSeparatorIndex = distroInfo.VersionId.IndexOf('.', lastVersionNumberSeparatorIndex + 1); } - if (lastVersionNumberSeparatorIndex != -1 && (distroInfo.Id == "rhel" || distroInfo.Id == "alpine")) + if (lastVersionNumberSeparatorIndex != -1 && (distroInfo.Id == "rhel" || distroInfo.Id == "alpine" || distroInfo.Id == "ol")) { distroInfo.VersionId = distroInfo.VersionId.Substring(0, lastVersionNumberSeparatorIndex); } -- 2.27.0