diff --git a/2000-anolis-dotnet-add-distro.patch b/2000-anolis-dotnet-add-distro.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0ebc31dce716c6f508503db77065a4ac21ff3c95
--- /dev/null
+++ b/2000-anolis-dotnet-add-distro.patch
@@ -0,0 +1,102 @@
+--- ./src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props 2021-10-03 23:24:08.000000000 +0800
++++ ./src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props.new 2022-02-12 20:37:51.705404475 +0800
+@@ -55,6 +55,14 @@
+ true
+ false
+
++
++ rhel
++ x64;arm64
++ 8;9
++ true
++ false
++
++
+
+
+ linux
+@@ -278,6 +286,6 @@
+ RuntimeJson="runtime.json"
+ CompatibilityMap="runtime.compatibility.json"
+ RuntimeDirectedGraph="$(OutputPath)runtime.json.dgml"
+- UpdateRuntimeFiles="$(UpdateRuntimeFiles)" />
++ UpdateRuntimeFiles="true" />
+
+
+--- ./src/diagnostics/eng/init-distro-rid.sh 2022-05-03 01:47:58.000000000 +0800
++++ ./src/diagnostics/eng/init-distro-rid.sh.new 2022-06-09 16:13:49.331928410 +0800
+@@ -51,7 +51,7 @@
+ # 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}" = "anolis" ]; then
+ # remove the last version digit
+ VERSION_ID=${VERSION_ID%.*}
+ fi
+--- ./src/runtime/eng/native/init-distro-rid.sh 2022-05-03 01:46:20.000000000 +0800
++++ ./src/runtime/eng/native/init-distro-rid.sh.new 2022-06-09 16:17:38.476897600 +0800
+@@ -41,7 +41,7 @@
+ # We have forced __PortableBuild=0. This is because -portablebuld
+ # has been passed as false.
+ if (( isPortable == 0 )); then
+- if [[ "${ID}" == "rhel" || "${ID}" == "alpine" ]]; then
++ if [ "${ID}" = "rhel" ] || [ "${ID}" = "anolis" ]; then
+ # remove the last version digit
+ VERSION_ID="${VERSION_ID%.*}"
+ fi
+--- ./src/deployment-tools/eng/native/init-distro-rid.sh 2022-06-09 16:26:06.117555652 +0800
++++ ./src/deployment-tools/eng/native/init-distro-rid.sh.new 2022-06-09 16:25:45.862850985 +0800
+@@ -41,7 +41,7 @@
+ # 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}" = "anolis" ]; then
+ # remove the last version digit
+ VERSION_ID="${VERSION_ID%.*}"
+ fi
+--- ./src/sdk/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs 2022-05-03 01:46:49.000000000 +0800
++++ ./src/sdk/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs.new 2022-06-09 16:30:22.790485373 +0800
+@@ -220,7 +220,7 @@
+ 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 == "anolis"))
+ {
+ distroInfo.VersionId = distroInfo.VersionId.Substring(0, lastVersionNumberSeparatorIndex);
+ }
+--- ./src/runtime/src/native/corehost/hostmisc/pal.unix.cpp 2022-05-03 01:46:23.000000000 +0800
++++ ./src/runtime/src/native/corehost/hostmisc/pal.unix.cpp.new 2022-06-09 16:32:39.621245751 +0800
+@@ -679,6 +679,7 @@
+ pal::string_t normalize_linux_rid(pal::string_t rid)
+ {
+ pal::string_t rhelPrefix(_X("rhel."));
++ pal::string_t anolisPrefix(_X("anolis."));
+ pal::string_t alpinePrefix(_X("alpine."));
+ size_t lastVersionSeparatorIndex = std::string::npos;
+
+@@ -686,6 +687,10 @@
+ {
+ lastVersionSeparatorIndex = rid.find(_X("."), rhelPrefix.length());
+ }
++ else if (rid.compare(0, anolisPrefix.length(), anolisPrefix) == 0)
++ {
++ lastVersionSeparatorIndex = rid.find(_X("."), anolisPrefix.length());
++ }
+ else if (rid.compare(0, alpinePrefix.length(), alpinePrefix) == 0)
+ {
+ size_t secondVersionSeparatorIndex = rid.find(_X("."), alpinePrefix.length());
+cs ./src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs.new
+--- ./src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs 2022-05-03 01:48:00.000000000 +0800
++++ ./src/arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/common/AssemblyResolution/Microsoft.DotNet.PlatformAbstractions/Native/PlatformApis.cs.new 2022-06-09 20:41:37.231172301 +0800
+@@ -131,7 +131,7 @@
+ // 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 == "anolis") && minorVersionNumberSeparatorIndex != -1)
+ {
+ distroInfo.VersionId = distroInfo.VersionId.Substring(0, minorVersionNumberSeparatorIndex);
+ }
diff --git a/dotnet6.0.spec b/dotnet6.0.spec
index 446576435e9425a63ad4f86014490fabeda4c7f7..0c3f6dcc446f978e6cce6c43df675d62c0c6687c 100644
--- a/dotnet6.0.spec
+++ b/dotnet6.0.spec
@@ -1,4 +1,6 @@
%bcond_with bootstrap
+%define anolis_os_version %(source /etc/os-release; echo ${VERSION})
+%define anolis_release .0.1
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -60,7 +62,7 @@
Name: dotnet6.0
Version: %{sdk_rpm_version}
-Release: 1%{?dist}
+Release: 1%{anolis_release}%{?dist}
Summary: .NET Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@@ -119,6 +121,8 @@ Patch1501: sdk-22373-portablerid.patch
# https://github.com/dotnet/installer/pull/12516
Patch1600: installer-12516-portablerid.patch
+Patch2000: 2000-anolis-dotnet-add-distro.patch
+
%if 0%{?fedora} || 0%{?rhel} >= 8
ExclusiveArch: aarch64 x86_64 s390x
%else
@@ -439,6 +443,7 @@ pushd src/installer
%patch1600 -p1
popd
+%patch2000 -p0
%if ! %{use_bundled_libunwind}
sed -i -E 's|( /p:BuildDebPackage=false)|\1 --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|' src/runtime/eng/SourceBuild.props
@@ -626,6 +631,9 @@ echo "Testing build results for debug symbols..."
%changelog
+* Fri Sep 16 2022 Liwei Ge - 6.0.109-1.0.1
+- Fix sdk suffix for Anolis OS
+
* Fri Sep 02 2022 Omair Majid - 6.0.109-1
- Update to .NET SDK 6.0.109 and Runtime 6.0.9
- Resolves: RHBZ#2123789