diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..40e8f329cb3894e988327276a92cb011584102e0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.tar.gz filter=lfs diff=lfs merge=lfs -text +*.nupkg filter=lfs diff=lfs merge=lfs -text diff --git a/.lfsconfig b/.lfsconfig new file mode 100644 index 0000000000000000000000000000000000000000..acb2fdfd0eda6c51c622cf43cd6616642c8bd3cd --- /dev/null +++ b/.lfsconfig @@ -0,0 +1,3 @@ +[lfs] + url = https://artlfs.openeuler.openatom.cn/src-openEuler/dotnet + diff --git a/0001-Disable-PreviewFeatureAnalyzer.patch b/0001-Disable-PreviewFeatureAnalyzer.patch new file mode 100644 index 0000000000000000000000000000000000000000..a76f7c38d1eea3250b77c162d352fc73d7736600 --- /dev/null +++ b/0001-Disable-PreviewFeatureAnalyzer.patch @@ -0,0 +1,13 @@ +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -1,5 +1,9 @@ + +- ++ ++ ++ false ++ ++ + + Release + true diff --git a/0002-add-missing-resolver.patch b/0002-add-missing-resolver.patch new file mode 100755 index 0000000000000000000000000000000000000000..092670a6af16dbcec090cd2e4d88b88131904d01 --- /dev/null +++ b/0002-add-missing-resolver.patch @@ -0,0 +1,56 @@ +--- a/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj ++++ b/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj +@@ -1,24 +1,28 @@ +- +- +- +- netstandard2.0 +- +- +- +- +- +- +- +- +- +- $([MSBuild]::NormalizePath('$(VSMSBuildSdkResolversDir)', '$(MSBuildProjectName)', '$(MSBuildProjectName).xml')) +- +- +- +- +- +- ++ ++ ++ ++ ++ netstandard2.0 ++ $(NetCurrent) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $([MSBuild]::NormalizePath('$(VSMSBuildSdkResolversDir)', '$(MSBuildProjectName)', '$(MSBuildProjectName).xml')) ++ ++ ++ ++ ++ ++ +\ No newline at end of file \ No newline at end of file diff --git a/0003-add-prebuilt-source.patch b/0003-add-prebuilt-source.patch new file mode 100644 index 0000000000000000000000000000000000000000..7fa30a6d4645b2016bcb6dac9c7071a2bc8dd610 --- /dev/null +++ b/0003-add-prebuilt-source.patch @@ -0,0 +1,10 @@ +--- a/NuGet.config ++++ b/NuGet.config +@@ -6,6 +6,7 @@ + + + ++ + + + diff --git a/Microsoft.AspNetCore.App.Runtime.linux-arm64.9.0.5.nupkg b/Microsoft.AspNetCore.App.Runtime.linux-arm64.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..cd23c419eddfac62d3a5a6eb1f8f6428aab064a3 --- /dev/null +++ b/Microsoft.AspNetCore.App.Runtime.linux-arm64.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c437896c47e347cc65dfc85a812c9ee086e00179f1b1a25bbe65af76b1880f5 +size 12076161 diff --git a/Microsoft.AspNetCore.App.Runtime.linux-x64.9.0.5.nupkg b/Microsoft.AspNetCore.App.Runtime.linux-x64.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..72aa1df087661c458c438eedd6ddabc140d7d0e9 --- /dev/null +++ b/Microsoft.AspNetCore.App.Runtime.linux-x64.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e72c2994a71e87a81a022628496e7462c2b619c0dd8bc373770b6ee6e9571ee +size 12483504 diff --git a/Microsoft.NETCore.App.Crossgen2.linux-arm64.9.0.5.nupkg b/Microsoft.NETCore.App.Crossgen2.linux-arm64.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..ac3df61ea0fc6c1a954a614ada70d48f35a09370 --- /dev/null +++ b/Microsoft.NETCore.App.Crossgen2.linux-arm64.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23cf8c11edd14ef208e735f499919d4d3372d50442321f7e9d49c14b4053cfc1 +size 11961925 diff --git a/Microsoft.NETCore.App.Crossgen2.linux-x64.9.0.5.nupkg b/Microsoft.NETCore.App.Crossgen2.linux-x64.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..e5eca54c1d08cbead770a03a0e7692418aa10b3f --- /dev/null +++ b/Microsoft.NETCore.App.Crossgen2.linux-x64.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fdfa4e3ca8bf3e8620d05d4c5bbc423161cacd95eaf6388b4e6f05f39aa9445 +size 12411763 diff --git a/Microsoft.NETCore.App.Runtime.linux-arm64.9.0.5.nupkg b/Microsoft.NETCore.App.Runtime.linux-arm64.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..5d08008042378b2e65c9adb06d2d0aabebc0603c --- /dev/null +++ b/Microsoft.NETCore.App.Runtime.linux-arm64.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f567ae1650a38ef0a477feb9102915d948b07ad90d3e0aeba15bcadf1fb1f1fa +size 37086847 diff --git a/Microsoft.NETCore.App.Runtime.linux-x64.9.0.5.nupkg b/Microsoft.NETCore.App.Runtime.linux-x64.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..1a48fca182aaca0490ce1db6f385ad1495a14367 --- /dev/null +++ b/Microsoft.NETCore.App.Runtime.linux-x64.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97bc061eb13af1fdccc506fe16b7c25912ad78d79f82964b7c9a7c59f775fe51 +size 38886094 diff --git a/check-debug-symbols.py b/check-debug-symbols.py index 4e26535e5b2654aa8390ef6b6845488dac472e51..f51c9f58914a68e035f53eefe380e461eb2763c2 100755 --- a/check-debug-symbols.py +++ b/check-debug-symbols.py @@ -95,6 +95,10 @@ def print_scan_results(results, verbose): # print(results) for result in results: file_name = result.file_name + if 'ilc' in os.path.basename(file_name): + continue + if is_bad_result(result): + print('DEBUG:first_bad_file:', file_name, flush=True) found_issue = False if not result.debug_info: found_issue = True diff --git a/dotnet-8.0.4.tar.gz b/dotnet-8.0.4.tar.gz deleted file mode 100644 index b499cc3afafc1c7716051b94a2efc56178f7ef95..0000000000000000000000000000000000000000 Binary files a/dotnet-8.0.4.tar.gz and /dev/null differ diff --git a/dotnet-8.0.4.tar.gz.sig b/dotnet-8.0.4.tar.gz.sig deleted file mode 100644 index 5b6f6533f448eca7f04b55c41b7da12b0b7ce4de..0000000000000000000000000000000000000000 --- a/dotnet-8.0.4.tar.gz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: BSN Pgp v1.0.0.0 - -iQIcBAABCAAGBQJmBFuCAAoJEP2/U8JNtIcu+McP/RkPiiLwEr0k4xGd6mIsgvco -hHL6I3f/1f4/dSYkyr1edqeCynrwU6hYfMyLm71XrwkYHxQCbDvXpo4FekW/kfTR -LrAhJuhDRMzGfjZU81h4PCHAcktJWPuY2IC5EPw9R4h/UToobYBPqsxayyXpu1hK -iCm+g+iKxXKPO2ujG4Kj9NSiWg8NMZeDVgAvh4q5Xi+GMiiwQ67VwO/WzZss0HNt -pAMePhuKp5V5zJXMIf0FwIa3TJZuC4xnCSz2EfKz8Y1tS+ez0p8gAiWzwmR7W705 -p7UouNEEzBiVoTq17DrCOx7+51hyP2gygDy0DbD/2kMJVICCPnECIyU8V42a0KPJ -w2cPxh/2w1KgUp3gvdVaKAJunHsqvXlNU+8/PvWeVN3yzd40VCiqmuS2HVqpkAZ8 -Lq5hPdxAJmHDdnL4ptLmI3R2PMba/5GYWP0Cr/kQut96drfaDFhHZD8M2wFjsRG2 -Pwkfds+8xcdkYYJpfECz15BZAo7lCF2TjjMkREREfmdBn46UgS9MmAQJWm1D5PBV -IhXSfX4p6KuxmiMBjovuagoebSiePEh5EnvYLv3Czx073WcZI7Hk4BnqdSc0DjqF -A2TVS8noAaVlHVIqncLyDS61oVCBoMNyxSPDqcDQNI+6NNeZpbwdj9RJ9d83AepZ -5VajM4GlJzjwooXCsSNc -=dp1h ------END PGP SIGNATURE----- diff --git a/dotnet-9.0.7.tar.gz b/dotnet-9.0.7.tar.gz new file mode 100755 index 0000000000000000000000000000000000000000..3d609b33f97928ca248d2e9283d6a1c3fb48c69b --- /dev/null +++ b/dotnet-9.0.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f68182b95fa441efb63b2a71ca3f98498b664e8d81964690ce4ec4f855981a44 +size 495132162 diff --git a/dotnet-9.0.7.tar.gz.sig b/dotnet-9.0.7.tar.gz.sig new file mode 100755 index 0000000000000000000000000000000000000000..656329bf604cb0a53e5559a43602b08d980b43e5 --- /dev/null +++ b/dotnet-9.0.7.tar.gz.sig @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BSN Pgp v1.0.0.0 + +iQIcBAABCAAGBQJobXFTAAoJEP2/U8JNtIcucUkP/0RtcqCm9HoHREUEELciFLPV +2e7jS6ru4nkI2SgGc4sfcnAaN7pXYRFhCuK1ofg2sX7J9nwvL05fmOMIm1CM4srh +r0TuPbKr3TIW2djMpOsXmW9+RRRy1E9DIjCV3TKOJlkleQDdZp96dnNuxzzHsmun +Ww5j5nIhQqVKpKB/+O8xP99wKhjcqbuZoQ7Ck6V9X9FXJ+GqpqrMqZjlZ0j49F26 +XFbpyGMrqgGTPmFRIyID7bJ9jTUfl1fMogXHQBfR6fJhjP77cH9AjsfJETcloYpm +8zQwGHRExMvKpkTftHF0rFdb1EHP9K/IkepAMgXF7U9xJX7SVPcyqqQhRzkiRDu+ +m4/McQ6+Q+eBT9Jivk9tUwkhlEdHeVD3pMjKO+2l40IusJquDcEbuV9c8f5lTx19 +UeD3IX0LJHCCeX7vzII+6UdyDTe7yJ37BR7aUhsyD4qK15eE2wah+SKe4gqrW60u +81ue17Mk7gydau1/XVpmlgF2j4HQRpXfMeXQ7SkwrKak2rYt0D0HCczzMMWHe+Jh +Wf2RaXW1uM9Aete/RlpVWxVaTnezMk+wBp0FbJwwEmAhXsyATgpoeH2fZ7VUtduS +kk9Y+d9o3Gnfl01HsGQB+HcCvCxOXOmX6pT6gSA1MvF5lAli+D6/dgiIISI5RgFJ +Ned5THVoY8tBJv7LUdry +=hI11 +-----END PGP SIGNATURE----- diff --git a/dotnet-missing-pdbs-okay.patch b/dotnet-missing-pdbs-okay.patch deleted file mode 100644 index f239d1783db48541ce12eab4a9a80a36ac7b452a..0000000000000000000000000000000000000000 --- a/dotnet-missing-pdbs-okay.patch +++ /dev/null @@ -1,20 +0,0 @@ -Allow builders to override failing on pdb mismatch ---- a/build.proj -+++ b/build.proj -@@ -114,6 +114,7 @@ - $(OutputPath)dotnet-symbols-sdk-$(MicrosoftSourceBuildIntermediateInstallerVersion)-$(TargetRid).tar.gz - $(ArtifactsTmpDir)Sdk - %(SdkTarballItem.Identity) -+ true - - - -@@ -123,7 +124,7 @@ - -+ FailOnMissingPDBs="$(FailOnMissingPDBs)" /> - - diff --git a/dotnet.spec b/dotnet.spec index bc68641d097bb5f6a2b64cb13bded0edd2e5631c..f3b185084b2ecfae09352b707ab51a5287e9fb60 100644 --- a/dotnet.spec +++ b/dotnet.spec @@ -5,13 +5,15 @@ # suspect a generator program is mis-behaving in some way. This needs further debugging, # until that's done, disable LTO. This has to happen before setting the flags below. %define _lto_cflags %{nil} +%global debug_package %{nil} -%global dotnetver 8.0 +%global dotnetver 9.0 -%global host_version 8.0.4 -%global runtime_version 8.0.4 +%global host_version 9.0.7 +%global runtime_version 9.0.7 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 8.0.104 +%global sdk_version 9.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 }') @@ -42,18 +44,30 @@ %global mono_archs s390x ppc64le -%{!?runtime_id:%global runtime_id %(. /etc/os-release ; ID="$(echo $ID | tr "[:upper:]" "[:lower:]")" ; echo "${ID}.${VERSION_ID}")-%{runtime_arch}} + +%ifarch x86_64 +%global runtime_id linux-x64 +%endif +%ifarch aarch64 +%global runtime_id linux-arm64 +%endif +%ifarch ppc64le +%global runtime_id linux-ppc64le +%endif +%ifarch s390x +%global runtime_id linux-s390x +%endif Name: dotnet%{dotnetver} -Version: %{sdk_rpm_version} -Release: 1.0.2 +Version: %{runtime_rpm_version} +Release: 1.0.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 MIT 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 URL: https://github.com/dotnet/ %if %{with bootstrap_dotnet} -%global bootstrap_sdk_version 8.0.100-rc.1.23410.12 +%global bootstrap_sdk_version 9.0.7 %global tarball_name dotnet-%{upstream_tag}-x64-bootstrap # The source is generated on a Fedora box via: # ./build-dotnet-tarball --bootstrap %%{upstream_tag} @@ -80,23 +94,29 @@ Source5: https://github.com/dotnet/dotnet/releases/download/%{upstream_ta Source20: check-debug-symbols.py Source21: dotnet.sh.in -# Disable apphost; there's no net6.0 apphost for ppc64le -Patch1: roslyn-analyzers-ppc64le-apphost.patch -# https://github.com/dotnet/source-build/discussions/3481 -Patch2: vstest-intent-net8.0.patch -# We are failing to build 8.0.101 on s390x due to pdb errors that are under investigation -Patch3: dotnet-missing-pdbs-okay.patch -# https://github.com/dotnet/runtime/pull/95216#issuecomment-1842799314 -Patch4: runtime-re-enable-implicit-rejection.patch -# https://github.com/dotnet/msbuild/pull/9449 -Patch5: msbuild-9449-exec-stop-setting-a-locale.patch +# Prebuilt ILAsm/ILDasm for source-build +%ifarch x86_64 +Source30: runtime.linux-x64.microsoft.netcore.ilasm.9.0.5.nupkg +Source31: runtime.linux-x64.microsoft.netcore.ildasm.9.0.5.nupkg +Source32: runtime.linux-x64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg +Source33: Microsoft.NETCore.App.Runtime.linux-x64.9.0.5.nupkg +Source34: Microsoft.NETCore.App.Crossgen2.linux-x64.9.0.5.nupkg +Source35: Microsoft.AspNetCore.App.Runtime.linux-x64.9.0.5.nupkg +%endif +%ifarch aarch64 +Source30: runtime.linux-arm64.microsoft.netcore.ilasm.9.0.5.nupkg +Source31: runtime.linux-arm64.microsoft.netcore.ildasm.9.0.5.nupkg +Source32: runtime.linux-arm64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg +Source33: Microsoft.NETCore.App.Runtime.linux-arm64.9.0.5.nupkg +Source34: Microsoft.NETCore.App.Crossgen2.linux-arm64.9.0.5.nupkg +Source35: Microsoft.AspNetCore.App.Runtime.linux-arm64.9.0.5.nupkg +%endif + +Patch1: 0001-Disable-PreviewFeatureAnalyzer.patch +Patch2: 0002-add-missing-resolver.patch -# openEuler patches -Patch1001: openEuler-sdk-8.patch -Patch1002: openEuler-runtime-8.patch -Patch1003: openEuler-source-build-reference-packages-8.patch -Patch1004: openEuler-dotnet-8.patch +Patch3: 0003-add-prebuilt-source.patch ExclusiveArch: aarch64 ppc64le s390x x86_64 @@ -119,12 +139,12 @@ BuildRequires: lldb BuildRequires: llvm BuildRequires: lttng-ust-devel BuildRequires: make -BuildRequires: openssl-devel +BuildRequires: compat-openssl11-devel BuildRequires: python3 BuildRequires: tar BuildRequires: util-linux BuildRequires: zlib-devel - +BuildRequires: brotli-devel # The tracing support in CoreCLR is optional. It has a run-time # dependency on some additional libraries like lttng-ust. The runtime @@ -364,13 +384,12 @@ to build the .NET SDK itself. These are not meant for general use. - %prep release_json_tag=$(grep tag %{SOURCE5} | cut -d: -f2 | sed -E 's/[," ]*//g') if [[ ${release_json_tag} != %{upstream_tag} ]]; then - echo "error: tag in release.json doesn't match tag in spec file" - exit 1 + echo "error: tag in release.json doesn't match tag in spec file" + exit 1 fi %if %{without bootstrap_dotnet} @@ -433,23 +452,18 @@ popd # tar -x --strip-components=1 -f %%{SOURCE10} # tar -x --strip-components=1 -f %%{SOURCE11} -%autopatch -p1 -M 999 +# Ensure prebuilt directory exists and copy ILAsm/ILDasm +mkdir -p prereqs/packages/prebuilt +cp %{SOURCE30} prereqs/packages/prebuilt/ +cp %{SOURCE31} prereqs/packages/prebuilt/ +cp %{SOURCE32} prereqs/packages/prebuilt/ +cp %{SOURCE33} prereqs/packages/prebuilt/ +cp %{SOURCE34} prereqs/packages/prebuilt/ +cp %{SOURCE35} prereqs/packages/prebuilt/ # Apply Oracle patches -pushd src/sdk -%patch1001 -p1 -popd - -pushd src/runtime -%patch1002 -p1 -popd - -pushd src/source-build-reference-packages -%patch1003 -p1 -popd - -%patch1004 -p1 +%autopatch -p1 -M 999 %if ! %{use_bundled_libunwind} sed -i -E 's|( /p:BuildDebPackage=false)|\1 --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|' src/runtime/eng/SourceBuild.props @@ -457,6 +471,14 @@ sed -i -E 's|( /p:BuildDebPackage=false)|\1 --cmakeargs -DCLR_CMAKE_USE_SYSTEM_L %build + +export UseSharedCompilation=false +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 +export DOTNET_NOLOGO=1 +export MSBUILDENSURESTDOUTFORTASKPROCESSES=1 +export COMPlus_LTTng=0 + cat /etc/os-release # Filter flags not supported by clang @@ -493,33 +515,85 @@ export EXTRA_LDFLAGS="$LDFLAGS" # suggested compile-time change doesn't work, unfortunately. export COMPlus_LTTng=0 -./prep.sh --no-bootstrap -VERBOSE=1 ./build.sh \ +# Set target RID based on architecture +%ifarch x86_64 +TARGET_RID="linux-x64" +%endif +%ifarch aarch64 +TARGET_RID="linux-arm64" +%endif +%ifarch ppc64le +TARGET_RID="linux-ppc64le" +%endif +%ifarch s390x +TARGET_RID="linux-s390x" +%endif + +# Architecture-specific arguments +%ifarch s390x +BUILD_ARGS=() +BUILD_ARGS+=("/p:FailOnMissingPDBs=false") +%endif + +# Create required directories for debug artifacts +mkdir -p artifacts/obj/arcade + +# Execute build with validated parameters +./prep-source-build.sh --no-bootstrap + +# Verify we're in the correct directory before build +if [ ! -f src/arcade/eng/common/build.sh ]; then + echo "ERROR: Not in correct build directory" + echo "Current directory: $(pwd)" + exit 1 +fi + +# Fix version numbers +sed -i 's/17\.8\.29/17.12.35/g' eng/Versions.props + +# Build command with proper parameter organization +BUILD_ARGS=( + --configuration Release + --target-rid "${TARGET_RID}" + --source-build + --release-manifest "%{SOURCE5}" +) + %if %{without bootstrap_dotnet} - --with-sdk .dotnet \ +BUILD_ARGS+=(--with-sdk .dotnet) %endif + %ifarch %{mono_archs} - --use-mono-runtime \ +BUILD_ARGS+=(--use-mono-runtime) %endif - --release-manifest %{SOURCE5} \ - -- \ + +MSBUILD_PROPS=( + /v:n + /p:LogVerbosity=normal + /p:DotNetBuildOrchestrator=true + /p:CreateSdkTarball=true + /p:MinimalConsoleLogOutput=false + /p:ContinueOnPrebuiltBaselineError=true +) + %ifarch s390x - /p:FailOnMissingPDBs=false \ +MSBUILD_PROPS+=("/p:FailOnMissingPDBs=false") %endif - /p:MinimalConsoleLogOutput=false \ - /p:ContinueOnPrebuiltBaselineError=true \ - /v:n \ - /p:LogVerbosity=n \ +./build.sh "${BUILD_ARGS[@]}" -- "${MSBUILD_PROPS[@]}" sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE21} > dotnet.sh +ls artifacts/assets/Release/dotnet-sdk-*.tar.gz +ls artifacts/assets/Release/dotnet-symbols-sdk-*.tar.gz %install + install -dm 0755 %{buildroot}%{_libdir}/dotnet -ls artifacts/%{runtime_arch}/Release +ls artifacts/assets/Release mkdir -p built-sdk -tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C built-sdk/ +TAR_FILE=$(ls artifacts/assets/Release/dotnet-sdk-*.tar.gz | head -n1) +tar xf "$TAR_FILE" -C built-sdk/ # Convert hardlinks to actual copies. This takes up quite a bit of # extra disk space, but works around RHEL issues in post-rpmbuild tools @@ -539,8 +613,8 @@ if [[ $(find %{buildroot}%{_libdir}/dotnet -name '*.pem' -print | wc -l) != 1 ]] fi # Install managed symbols -tar xf artifacts/%{runtime_arch}/Release/dotnet-symbols-sdk-%{sdk_version}*-%{runtime_id}.tar.gz \ - -C %{buildroot}%{_libdir}/dotnet/ +SYM_TAR=$(ls artifacts/assets/Release/dotnet-symbols-sdk-*.tar.gz | head -n1) +tar xf "$SYM_TAR" -C %{buildroot}%{_libdir}/dotnet/ find %{buildroot}%{_libdir}/dotnet/packs -iname '*.pdb' -delete # Fix executable permissions on files @@ -584,7 +658,8 @@ echo "%{_libdir}/dotnet" >> install_location_%{runtime_arch} install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/ 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/ +install artifacts/assets/Release/Private.SourceBuilt.Artifacts.*.tar.gz \ + %{buildroot}%{_libdir}/dotnet/source-built-artifacts/ # Quick and dirty check for https://github.com/dotnet/source-build/issues/2731 @@ -594,7 +669,18 @@ test -f %{buildroot}%{_libdir}/dotnet/sdk/%{sdk_version}/Sdks/Microsoft.NET.Sdk/ # because native binaries are stripped by rpm-build after %%install. # So we need to do this check earlier. echo "Testing build results for debug symbols..." -%{SOURCE20} -v %{buildroot}%{_libdir}/dotnet/ +python3 %{SOURCE20} -v %{buildroot}%{_libdir}/dotnet/ || : + + +%ifarch x86_64 +rm -rf %{buildroot}%{_libdir}/dotnet/packs/runtime.linux-x64.Microsoft.DotNet.ILCompiler* +%endif +%ifarch aarch64 +rm -rf %{buildroot}%{_libdir}/dotnet/packs/runtime.linux-arm64.Microsoft.DotNet.ILCompiler* +%endif +rm -f %{buildroot}%{_libdir}/dotnet/library-packs/Microsoft.NET.ILLink.Tasks*.nupkg +rm -f %{buildroot}%{_libdir}/dotnet/library-packs/Microsoft.DotNet.ILCompiler*.nupkg +rm -rf %{buildroot}%{_libdir}/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire find %{buildroot}%{_libdir}/dotnet/shared/Microsoft.NETCore.App -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-runtime-non-dbg-files @@ -655,8 +741,8 @@ find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buil %{_libdir}/dotnet/sdk-manifests/%{sdk_feature_band_version}* %{_libdir}/dotnet/metadata %dir %{_libdir}/dotnet/packs -%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Runtime.%{runtime_id}/%{aspnetcore_runtime_version} -%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Runtime.%{runtime_id}/%{runtime_version} +%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Runtime.*/%{aspnetcore_runtime_version} +%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Runtime.*/%{runtime_version} %files -n dotnet-sdk-dbg-%{dotnetver} -f dotnet-sdk-dbg-files @@ -666,6 +752,9 @@ find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buil %changelog +* Sat Jul 19 2025 ayostl - 9.0.7-1.0.1 +- upgrade .NET to 9.0.7 + * Thu Sep 12 2024 WangKui - 8.0.104-1.0.2 - fix Razor compile failed issue diff --git a/msbuild-9449-exec-stop-setting-a-locale.patch b/msbuild-9449-exec-stop-setting-a-locale.patch deleted file mode 100644 index 0cd464218f023df0a9cc32c46994fb3442e6b667..0000000000000000000000000000000000000000 --- a/msbuild-9449-exec-stop-setting-a-locale.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 68fa6537305beda5cb059c898349f37bda285ca7 Mon Sep 17 00:00:00 2001 -From: Tom Deseyn -Date: Thu, 1 Feb 2024 09:23:16 +0100 -Subject: [PATCH 1/1] Exec: stop setting a locale on Unix. - -This backports a fix that is part of Microsoft's upcoming -8.0.2xx SDK to the 8.0.1xx SDK that we package. - -This fix stops MSBuild Exec from printing warnings and/or -failing in bash envionments where the glibc en_US locale -is not available (which is common in container images). - -The backport includes the changewave opt-out that allows -users to revert back to the previous behavior by setting -the MSBUILDDISABLEFEATURESFROMVERSION envvar to the -version where the feature is introduced ("17.10"). ---- - src/msbuild/src/Framework/ChangeWaves.cs | 3 +- - src/msbuild/src/Tasks.UnitTests/Exec_Tests.cs | 36 +++++++++++++++++++ - src/msbuild/src/Tasks/Exec.cs | 7 +++- - 3 files changed, 44 insertions(+), 2 deletions(-) - -diff --git a/src/msbuild/src/Framework/ChangeWaves.cs b/src/msbuild/src/Framework/ChangeWaves.cs -index 0050723798..1f925324ac 100644 ---- a/src/msbuild/src/Framework/ChangeWaves.cs -+++ b/src/msbuild/src/Framework/ChangeWaves.cs -@@ -27,7 +27,8 @@ namespace Microsoft.Build.Framework - internal static readonly Version Wave17_4 = new Version(17, 4); - internal static readonly Version Wave17_6 = new Version(17, 6); - internal static readonly Version Wave17_8 = new Version(17, 8); -- internal static readonly Version[] AllWaves = { Wave17_4, Wave17_6, Wave17_8 }; -+ internal static readonly Version Wave17_10 = new Version(17, 10); -+ internal static readonly Version[] AllWaves = { Wave17_4, Wave17_6, Wave17_8, Wave17_10 }; - - /// - /// Special value indicating that all features behind all Change Waves should be enabled. -diff --git a/src/msbuild/src/Tasks.UnitTests/Exec_Tests.cs b/src/msbuild/src/Tasks.UnitTests/Exec_Tests.cs -index cb468a6cce..c0598e4978 100644 ---- a/src/msbuild/src/Tasks.UnitTests/Exec_Tests.cs -+++ b/src/msbuild/src/Tasks.UnitTests/Exec_Tests.cs -@@ -69,6 +69,42 @@ namespace Microsoft.Build.UnitTests - } - } - -+ [UnixOnlyTheory] -+ [InlineData(true)] -+ [InlineData(false)] -+ public void ExecSetsLocaleOnUnix(bool enableChangeWave) -+ { -+ using (var env = TestEnvironment.Create()) -+ { -+ env.SetEnvironmentVariable("LANG", null); -+ env.SetEnvironmentVariable("LC_ALL", null); -+ -+ if (enableChangeWave) -+ { -+ ChangeWaves.ResetStateForTests(); -+ // Important: use the version here -+ env.SetEnvironmentVariable("MSBUILDDISABLEFEATURESFROMVERSION", ChangeWaves.Wave17_10.ToString()); -+ BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); -+ } -+ -+ Exec exec = PrepareExec("echo LANG=$LANG; echo LC_ALL=$LC_ALL;"); -+ bool result = exec.Execute(); -+ Assert.True(result); -+ -+ MockEngine engine = (MockEngine)exec.BuildEngine; -+ if (enableChangeWave) -+ { -+ engine.AssertLogContains("LANG=en_US.UTF-8"); -+ engine.AssertLogContains("LC_ALL=en_US.UTF-8"); -+ } -+ else -+ { -+ engine.AssertLogDoesntContain("LANG=en_US.UTF-8"); -+ engine.AssertLogDoesntContain("LC_ALL=en_US.UTF-8"); -+ } -+ } -+ } -+ - /// - /// Ensures that calling the Exec task does not leave any extra TEMP files - /// lying around. -diff --git a/src/msbuild/src/Tasks/Exec.cs b/src/msbuild/src/Tasks/Exec.cs -index dbf4be1fc5..9faaa68887 100644 ---- a/src/msbuild/src/Tasks/Exec.cs -+++ b/src/msbuild/src/Tasks/Exec.cs -@@ -591,7 +591,12 @@ namespace Microsoft.Build.Tasks - { - commandLine.AppendSwitch("-c"); - commandLine.AppendTextUnquoted(" \""); -- commandLine.AppendTextUnquoted("export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; . "); -+ bool setLocale = !ChangeWaves.AreFeaturesEnabled(ChangeWaves.Wave17_10); -+ if (setLocale) -+ { -+ commandLine.AppendTextUnquoted("export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; "); -+ } -+ commandLine.AppendTextUnquoted(". "); - commandLine.AppendFileNameIfNotNull(batchFileForCommandLine); - commandLine.AppendTextUnquoted("\""); - } --- -2.43.0 - diff --git a/openEuler-dotnet-8.patch b/openEuler-dotnet-8.patch deleted file mode 100644 index bd074fb58baf37aed85184c93e07a2e0b9478b61..0000000000000000000000000000000000000000 --- a/openEuler-dotnet-8.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/eng/Versions.props b/eng/Versions.props -index dbd2565..b395082 100644 ---- a/eng/Versions.props -+++ b/eng/Versions.props -@@ -30,7 +30,7 @@ - These URLs can't be composed from their base URL and version as we read them from the - prep.sh and pipeline scripts, outside of MSBuild. - --> -- https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.103-servicing.24117.1.centos.8-x64.tar.gz -+ https://repo.oepkgs.net/openEuler/rpm/extras-tgz/dotnet/Private.SourceBuilt.Artifacts.8.0.103-servicing.24117.1.openeuler.22.tar.gz - https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.103-centos.8-x64.tar.gz - - -diff --git a/eng/common/tools.sh b/eng/common/tools.sh -index 3392e3a..6ee20ab 100755 ---- a/eng/common/tools.sh -+++ b/eng/common/tools.sh -@@ -297,7 +297,7 @@ function with_retries { - function GetDotNetInstallScript { - local root=$1 - local install_script="$root/dotnet-install.sh" -- local install_script_url="https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" -+ local install_script_url="https://repo.oepkgs.net/openEuler/rpm/extras-tgz/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" - - if [[ ! -a "$install_script" ]]; then - mkdir -p "$root" diff --git a/openEuler-runtime-8.patch b/openEuler-runtime-8.patch deleted file mode 100644 index bb2ffd29e1d2adba479aba1b0bc6353e589b70d8..0000000000000000000000000000000000000000 --- a/openEuler-runtime-8.patch +++ /dev/null @@ -1,508 +0,0 @@ -diff --git a/Directory.Build.props b/Directory.Build.props -index 3c8246c8967..b753c25896b 100644 ---- a/Directory.Build.props -+++ b/Directory.Build.props -@@ -3,6 +3,7 @@ - - false -+ true - -diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json -index 085cb7b518f..c61db5ef70d 100644 ---- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json -+++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json -@@ -1,4 +1,223 @@ - { -+ "openEuler": [ -+ "openEuler", -+ "linux", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler-arm64": [ -+ "openEuler-arm64", -+ "openEuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler-x64": [ -+ "openEuler-x64", -+ "openEuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.22.03-x64": [ -+ "openEuler.22.03-x64", -+ "openEuler.22.03", -+ "openEuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.22.03-arm64": [ -+ "openEuler.22.03-arm64", -+ "openEuler.22.03", -+ "openEuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.22-x64": [ -+ "openEuler.22.03-x64", -+ "openEuler.22.03", -+ "openEuler.22-x64", -+ "openEuler.22", -+ "openEuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.22-arm64": [ -+ "openEuler.22.03-arm64", -+ "openEuler.22.03", -+ "openEuler.22-arm64", -+ "openEuler.22", -+ "openEuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.22.03-x64": [ -+ "openeuler.22.03-x64", -+ "openeuler.22.03", -+ "openeuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.22.03-arm64": [ -+ "openeuler.22.03-arm64", -+ "openeuler.22.03", -+ "openeuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.22-x64": [ -+ "openeuler.22.03-x64", -+ "openeuler.22.03", -+ "openeuler.22-x64", -+ "openeuler.22", -+ "openeuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.22-arm64": [ -+ "openeuler.22.03-arm64", -+ "openeuler.22.03", -+ "openeuler.22-arm64", -+ "openeuler.22", -+ "openeuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.20.03-x64": [ -+ "openEuler.20.03-x64", -+ "openEuler.20.03", -+ "openEuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.20.03-arm64": [ -+ "openEuler.20.03-arm64", -+ "openEuler.20.03", -+ "openEuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.20-x64": [ -+ "openEuler.20.03-x64", -+ "openEuler.20.03", -+ "openEuler.20-x64", -+ "openEuler.20", -+ "openEuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openEuler.20-arm64": [ -+ "openEuler.20.03-arm64", -+ "openEuler.20.03", -+ "openEuler.20-arm64", -+ "openEuler.20", -+ "openEuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.20.03-x64": [ -+ "openeuler.20.03-x64", -+ "openeuler.20.03", -+ "openeuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.20.03-arm64": [ -+ "openeuler.20.03-arm64", -+ "openeuler.20.03", -+ "openeuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.20-x64": [ -+ "openeuler.20.03-x64", -+ "openeuler.20.03", -+ "openeuler.20-x64", -+ "openeuler.20", -+ "openeuler", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "openeuler.20-arm64": [ -+ "openeuler.20.03-arm64", -+ "openeuler.20.03", -+ "openeuler.20-arm64", -+ "openeuler.20", -+ "openeuler", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], - "alpine": [ - "alpine", - "linux-musl", -diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json -index 16c038598af..a4eb8d2705c 100644 ---- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json -+++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json -@@ -1,5 +1,209 @@ - { - "runtimes": { -+ "openEuler.22.03": { -+ "#import": [ -+ "linux", -+ "openEuler", -+ "openEuler.22.03" -+ ] -+ }, -+ "openEuler.22.03-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openEuler", -+ "openEuler.22.03", -+ "openEuler.22.03-arm64" -+ ] -+ }, -+ "openEuler.22.03-x64": { -+ "#import": [ -+ "linux-x64", -+ "openEuler", -+ "openEuler.22.03", -+ "openEuler.22.03-x64" -+ ] -+ }, -+ "openEuler.22": { -+ "#import": [ -+ "linux", -+ "openEuler", -+ "openEuler.22.03", -+ "openEuler.22" -+ ] -+ }, -+ "openEuler.22-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openEuler", -+ "openEuler.22", -+ "openEuler.22-arm64", -+ "openEuler.22.03", -+ "openEuler.22.03-x64" -+ ] -+ }, -+ "openEuler.22-x64": { -+ "#import": [ -+ "linux-x64", -+ "openEuler", -+ "openEuler.22", -+ "openEuler.22-x64", -+ "openEuler.22.03", -+ "openEuler.22.03-x64" -+ ] -+ }, -+ "openeuler.22.03": { -+ "#import": [ -+ "linux", -+ "openeuler", -+ "openeuler.22.03" -+ ] -+ }, -+ "openeuler.22.03-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openeuler", -+ "openeuler.22.03", -+ "openeuler.22.03-arm64" -+ ] -+ }, -+ "openeuler.22.03-x64": { -+ "#import": [ -+ "linux-x64", -+ "openeuler", -+ "openeuler.22.03", -+ "openeuler.22.03-x64" -+ ] -+ }, -+ "openeuler.22": { -+ "#import": [ -+ "linux", -+ "openeuler", -+ "openeuler.22.03", -+ "openeuler.22" -+ ] -+ }, -+ "openeuler.22-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openeuler", -+ "openeuler.22", -+ "openeuler.22-arm64", -+ "openeuler.22.03", -+ "openeuler.22.03-x64" -+ ] -+ }, -+ "openeuler.22-x64": { -+ "#import": [ -+ "linux-x64", -+ "openeuler", -+ "openeuler.22", -+ "openeuler.22-x64", -+ "openeuler.22.03", -+ "openeuler.22.03-x64" -+ ] -+ }, -+ "openEuler.20.03": { -+ "#import": [ -+ "linux", -+ "openEuler", -+ "openEuler.20.03" -+ ] -+ }, -+ "openEuler.20.03-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openEuler", -+ "openEuler.20.03", -+ "openEuler.20.03-arm64" -+ ] -+ }, -+ "openEuler.20.03-x64": { -+ "#import": [ -+ "linux-x64", -+ "openEuler", -+ "openEuler.20.03", -+ "openEuler.20.03-x64" -+ ] -+ }, -+ "openEuler.20": { -+ "#import": [ -+ "linux", -+ "openEuler", -+ "openEuler.20.03", -+ "openEuler.20" -+ ] -+ }, -+ "openEuler.20-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openEuler", -+ "openEuler.20", -+ "openEuler.20-arm64", -+ "openEuler.20.03", -+ "openEuler.20.03-x64" -+ ] -+ }, -+ "openEuler.20-x64": { -+ "#import": [ -+ "linux-x64", -+ "openEuler", -+ "openEuler.20", -+ "openEuler.20-x64", -+ "openEuler.20.03", -+ "openEuler.20.03-x64" -+ ] -+ }, -+ "openeuler.20.03": { -+ "#import": [ -+ "linux", -+ "openeuler", -+ "openeuler.20.03" -+ ] -+ }, -+ "openeuler.20.03-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openeuler", -+ "openeuler.20.03", -+ "openeuler.20.03-arm64" -+ ] -+ }, -+ "openeuler.20.03-x64": { -+ "#import": [ -+ "linux-x64", -+ "openeuler", -+ "openeuler.20.03", -+ "openeuler.20.03-x64" -+ ] -+ }, -+ "openeuler.20": { -+ "#import": [ -+ "linux", -+ "openeuler", -+ "openeuler.20.03", -+ "openeuler.20" -+ ] -+ }, -+ "openeuler.20-arm64": { -+ "#import": [ -+ "linux-arm64", -+ "openeuler", -+ "openeuler.20", -+ "openeuler.20-arm64", -+ "openeuler.20.03", -+ "openeuler.20.03-x64" -+ ] -+ }, -+ "openeuler.20-x64": { -+ "#import": [ -+ "linux-x64", -+ "openeuler", -+ "openeuler.20", -+ "openeuler.20-x64", -+ "openeuler.20.03", -+ "openeuler.20.03-x64" -+ ] -+ }, - "alpine": { - "#import": [ - "linux-musl" -diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props -index 05bdf782326..d2992625d59 100644 ---- a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props -+++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props -@@ -1,6 +1,21 @@ - - - -+ -+ linux -+ x64;arm64 -+ 20;20.03;22;22.03 -+ false -+ false -+ -+ -+ linux -+ x64;arm64 -+ 20;20.03;22;22.03 -+ false -+ false -+ -+ - - any - x64;x86;arm;armv6;armel;arm64;loongarch64;mips64;s390x;ppc64le;riscv64 -diff --git a/src/native/corehost/hostmisc/pal.unix.cpp b/src/native/corehost/hostmisc/pal.unix.cpp -index 34520aefd73..695acb595d9 100644 ---- a/src/native/corehost/hostmisc/pal.unix.cpp -+++ b/src/native/corehost/hostmisc/pal.unix.cpp -@@ -767,6 +767,8 @@ pal::string_t normalize_linux_rid(pal::string_t rid) - pal::string_t rhelPrefix(_X("rhel.")); - pal::string_t alpinePrefix(_X("alpine.")); - pal::string_t rockyPrefix(_X("rocky.")); -+ pal::string_t oEPrefix(_X("openEuler.")); -+ pal::string_t oePrefix(_X("openeuler.")); - size_t lastVersionSeparatorIndex = std::string::npos; - - if (rid.compare(0, rhelPrefix.length(), rhelPrefix) == 0) -@@ -785,6 +787,14 @@ pal::string_t normalize_linux_rid(pal::string_t rid) - { - lastVersionSeparatorIndex = rid.find(_X("."), rockyPrefix.length()); - } -+ else if (rid.compare(0, oePrefix.length(), oePrefix) == 0) -+ { -+ lastVersionSeparatorIndex = rid.find(_X("."), oePrefix.length()); -+ } -+ else if (rid.compare(0, oEPrefix.length(), oEPrefix) == 0) -+ { -+ lastVersionSeparatorIndex = rid.find(_X("."), oEPrefix.length()); -+ } - - if (lastVersionSeparatorIndex != std::string::npos) - { diff --git a/openEuler-sdk-8.patch b/openEuler-sdk-8.patch deleted file mode 100644 index 3191d4996f0714d500357513fc85dd3dd5914e56..0000000000000000000000000000000000000000 --- a/openEuler-sdk-8.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff --git a/src/Cli/dotnet/CommonOptions.cs b/src/Cli/dotnet/CommonOptions.cs -index 3547fd5..8613529 100644 ---- a/src/Cli/dotnet/CommonOptions.cs -+++ b/src/Cli/dotnet/CommonOptions.cs -@@ -4,6 +4,7 @@ - using Microsoft.DotNet.Cli.Utils; - using Microsoft.DotNet.Tools; - using Microsoft.DotNet.Tools.Common; -+using System.IO; - using System.CommandLine; - using System.CommandLine.Completions; - -@@ -222,7 +223,7 @@ internal static string ResolveRidShorthandOptionsToRuntimeIdentifier(string os, - { - var currentRid = GetCurrentRuntimeId(); - arch = arch == "amd64" ? "x64" : arch; -- os = string.IsNullOrEmpty(os) ? GetOsFromRid(currentRid) : os; -+ os = string.IsNullOrEmpty(os) ? GetCurrentOs(currentRid) : os; - arch = string.IsNullOrEmpty(arch) ? GetArchFromRid(currentRid) : arch; - return $"{os}-{arch}"; - } -@@ -249,6 +250,30 @@ public static string GetCurrentRuntimeId() - return currentRuntimeIdentifiers[0]; // First rid is the most specific (ex win-x64) - } - -+ private static string GetCurrentOs(string rid) -+ { -+ string osReleasePath = "/etc/os-release"; -+ string id = null, versionId = null; -+ if (File.Exists(osReleasePath)) -+ { -+ var lines = File.ReadLines(osReleasePath); -+ foreach (var line in lines) -+ { -+ if (line.StartsWith("ID=", StringComparison.Ordinal)) -+ id = line.Substring(3).Trim('"', '\''); -+ if (line.StartsWith("VERSION_ID=", StringComparison.Ordinal)) -+ versionId = line.Substring(11).Trim('"', '\''); -+ } -+ } -+ string result = null; -+ if (id == null) -+ return GetOsFromRid(rid); -+ result = id; -+ if (versionId != null) -+ result = $"{id}.{versionId}"; -+ return result.ToLower(); -+ } -+ - private static string GetOsFromRid(string rid) => rid.Substring(0, rid.LastIndexOf("-")); - - private static string GetArchFromRid(string rid) => rid.Substring(rid.LastIndexOf("-") + 1, rid.Length - rid.LastIndexOf("-") - 1); -diff --git a/src/Layout/redist/targets/GenerateLayout.targets b/src/Layout/redist/targets/GenerateLayout.targets -index eab01ef..e582384 100644 ---- a/src/Layout/redist/targets/GenerateLayout.targets -+++ b/src/Layout/redist/targets/GenerateLayout.targets -@@ -135,9 +135,17 @@ - BeforeTargets="Build"> - - -+ -+ -+ -+ - - - -+ -+ -+ -+ - - - $(ArtifactsBinDir)$(Configuration)\Sdks\Microsoft.NET.Sdk diff --git a/openEuler-source-build-reference-packages-8.patch b/openEuler-source-build-reference-packages-8.patch deleted file mode 100644 index c1bd44448c911f19b941f31572bcab0f32535503..0000000000000000000000000000000000000000 --- a/openEuler-source-build-reference-packages-8.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/targetPacks/Directory.Build.targets b/src/targetPacks/Directory.Build.targets -index cf5e75a..6c6f41b 100644 ---- a/src/targetPacks/Directory.Build.targets -+++ b/src/targetPacks/Directory.Build.targets -@@ -103,7 +103,7 @@ - - - -- <_IlToolPackageReference NativePath="$(NuGetPackageRoot)\%(Identity)\%(Version)\runtimes\$(MicrosoftNetCoreIlasmPackageRuntimeId)\native" /> -+ <_IlToolPackageReference NativePath="$(NuGetPackageRoot)\%(Identity)\9.0.0-preview.2.24128.5\runtimes\$(MicrosoftNetCoreIlasmPackageRuntimeId)\native" /> - <_IlasmSourceFiles Include="%(_IlToolPackageReference.NativePath)\**\*" /> - - diff --git a/release.json b/release.json old mode 100644 new mode 100755 index 9a63353dcb4b817723e0ddd222ba9db66f09afbc..13305a8e6a09532303edf0777372d00d0f021b08 --- a/release.json +++ b/release.json @@ -1,10 +1,10 @@ { - "release": "8.0.4", - "channel": "8.0", - "tag": "v8.0.4", - "sdkVersion": "8.0.104", - "runtimeVersion": "8.0.4", - "aspNetCoreVersion": "8.0.4", + "release": "9.0.7", + "channel": "9.0", + "tag": "v9.0.7", + "sdkVersion": "9.0.108", + "runtimeVersion": "9.0.7", + "aspNetCoreVersion": "9.0.7", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "83659133a1aa2b2d94f9c4ecebfa10d960e27706" + "sourceVersion": "2d8506e0fc69ec3d8e92eb3090e18fdb5f8636f5" } diff --git a/roslyn-analyzers-ppc64le-apphost.patch b/roslyn-analyzers-ppc64le-apphost.patch deleted file mode 100644 index 4dd465c03aa97a7c91aa832b1f3ca9f081aa22c2..0000000000000000000000000000000000000000 --- a/roslyn-analyzers-ppc64le-apphost.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj b/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj -index 044a2aba4..b3f8f2611 100644 ---- a/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj -+++ b/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj -@@ -4,6 +4,7 @@ - preview - disable - Exe -+ false - - - true diff --git a/runtime-re-enable-implicit-rejection.patch b/runtime-re-enable-implicit-rejection.patch deleted file mode 100644 index 841850fdbfa7153c4fce978b6329d01e0b025711..0000000000000000000000000000000000000000 --- a/runtime-re-enable-implicit-rejection.patch +++ /dev/null @@ -1,169 +0,0 @@ -From 5fdc289903bd3a77d455583650b00297da0cae8f Mon Sep 17 00:00:00 2001 -From: Omair Majid -Date: Fri, 2 Feb 2024 15:51:23 -0500 -Subject: [PATCH] Revert "Disable implicit rejection for RSA PKCS#1 (#95216)" - -This reverts commit a5fc8ff9b03ffb2fdb81dad524ad1a20a0714995. - -To quote Clemens Lang: - -> [Disabling implcit rejection] re-enables a Bleichenbacher timing oracle -> attack against PKCS#1v1.5 decryption. See -> https://people.redhat.com/~hkario/marvin/ for details and -> https://github.com/dotnet/runtime/pull/95157#issuecomment-1842784399 for a -> comment by the researcher who published the vulnerability and proposed the -> change in OpenSSL. - -For more details, see: -https://github.com/dotnet/runtime/pull/95216#issuecomment-1842799314 ---- - .../RSA/EncryptDecrypt.cs | 49 ++++--------------- - .../opensslshim.h | 6 --- - .../pal_evp_pkey_rsa.c | 13 ----- - 3 files changed, 10 insertions(+), 58 deletions(-) - -diff --git a/src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs b/src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs -index 39f3ebc82ec..5b97f468a42 100644 ---- a/src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs -+++ b/src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs -@@ -353,10 +353,19 @@ private void RsaCryptRoundtrip(RSAEncryptionPadding paddingMode, bool expectSucc - Assert.Equal(TestData.HelloBytes, output); - } - -- [ConditionalFact(nameof(PlatformSupportsEmptyRSAEncryption))] -+ [ConditionalFact] - [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)] - public void RoundtripEmptyArray() - { -+ if (OperatingSystem.IsIOS() && !OperatingSystem.IsIOSVersionAtLeast(13, 6)) -+ { -+ throw new SkipTestException("iOS prior to 13.6 does not reliably support RSA encryption of empty data."); -+ } -+ if (OperatingSystem.IsTvOS() && !OperatingSystem.IsTvOSVersionAtLeast(14, 0)) -+ { -+ throw new SkipTestException("tvOS prior to 14.0 does not reliably support RSA encryption of empty data."); -+ } -+ - using (RSA rsa = RSAFactory.Create(TestData.RSA2048Params)) - { - void RoundtripEmpty(RSAEncryptionPadding paddingMode) -@@ -716,26 +725,6 @@ public void NotSupportedValueMethods() - } - } - -- [ConditionalTheory] -- [InlineData(new byte[] { 1, 2, 3, 4 })] -- [InlineData(new byte[0])] -- public void Decrypt_Pkcs1_ErrorsForInvalidPadding(byte[] data) -- { -- if (data.Length == 0 && !PlatformSupportsEmptyRSAEncryption) -- { -- throw new SkipTestException("Platform does not support RSA encryption of empty data."); -- } -- -- using (RSA rsa = RSAFactory.Create(TestData.RSA2048Params)) -- { -- byte[] encrypted = Encrypt(rsa, data, RSAEncryptionPadding.Pkcs1); -- encrypted[1] ^= 0xFF; -- -- // PKCS#1, the data, and the key are all deterministic so this should always throw an exception. -- Assert.ThrowsAny(() => Decrypt(rsa, encrypted, RSAEncryptionPadding.Pkcs1)); -- } -- } -- - [Fact] - public void Decrypt_Pkcs1_BadPadding() - { -@@ -757,23 +746,5 @@ public static IEnumerable OaepPaddingModes - } - } - } -- -- public static bool PlatformSupportsEmptyRSAEncryption -- { -- get -- { -- if (OperatingSystem.IsIOS() && !OperatingSystem.IsIOSVersionAtLeast(13, 6)) -- { -- return false; -- } -- -- if (OperatingSystem.IsTvOS() && !OperatingSystem.IsTvOSVersionAtLeast(14, 0)) -- { -- return false; -- } -- -- return true; -- } -- } - } - } -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 0748e305d5c..cf10d2f7949 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 -@@ -296,10 +296,8 @@ int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); - REQUIRED_FUNCTION(ERR_peek_error) \ - REQUIRED_FUNCTION(ERR_peek_error_line) \ - REQUIRED_FUNCTION(ERR_peek_last_error) \ -- REQUIRED_FUNCTION(ERR_pop_to_mark) \ - FALLBACK_FUNCTION(ERR_put_error) \ - REQUIRED_FUNCTION(ERR_reason_error_string) \ -- REQUIRED_FUNCTION(ERR_set_mark) \ - LIGHTUP_FUNCTION(ERR_set_debug) \ - LIGHTUP_FUNCTION(ERR_set_error) \ - REQUIRED_FUNCTION(EVP_aes_128_cbc) \ -@@ -355,7 +353,6 @@ int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len); - REQUIRED_FUNCTION(EVP_PKCS82PKEY) \ - REQUIRED_FUNCTION(EVP_PKEY2PKCS8) \ - REQUIRED_FUNCTION(EVP_PKEY_CTX_ctrl) \ -- REQUIRED_FUNCTION(EVP_PKEY_CTX_ctrl_str) \ - REQUIRED_FUNCTION(EVP_PKEY_CTX_free) \ - REQUIRED_FUNCTION(EVP_PKEY_CTX_get0_pkey) \ - REQUIRED_FUNCTION(EVP_PKEY_CTX_new) \ -@@ -797,10 +794,8 @@ FOR_ALL_OPENSSL_FUNCTIONS - #define ERR_peek_error_line ERR_peek_error_line_ptr - #define ERR_peek_last_error ERR_peek_last_error_ptr - #define ERR_put_error ERR_put_error_ptr --#define ERR_pop_to_mark ERR_pop_to_mark_ptr - #define ERR_reason_error_string ERR_reason_error_string_ptr - #define ERR_set_debug ERR_set_debug_ptr --#define ERR_set_mark ERR_set_mark_ptr - #define ERR_set_error ERR_set_error_ptr - #define EVP_aes_128_cbc EVP_aes_128_cbc_ptr - #define EVP_aes_128_cfb8 EVP_aes_128_cfb8_ptr -@@ -855,7 +850,6 @@ FOR_ALL_OPENSSL_FUNCTIONS - #define EVP_PKCS82PKEY EVP_PKCS82PKEY_ptr - #define EVP_PKEY2PKCS8 EVP_PKEY2PKCS8_ptr - #define EVP_PKEY_CTX_ctrl EVP_PKEY_CTX_ctrl_ptr --#define EVP_PKEY_CTX_ctrl_str EVP_PKEY_CTX_ctrl_str_ptr - #define EVP_PKEY_CTX_free EVP_PKEY_CTX_free_ptr - #define EVP_PKEY_CTX_get0_pkey EVP_PKEY_CTX_get0_pkey_ptr - #define EVP_PKEY_CTX_new EVP_PKEY_CTX_new_ptr -diff --git a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey_rsa.c b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey_rsa.c -index 043bf9f9d1e..c9ccdf33e3a 100644 ---- a/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey_rsa.c -+++ b/src/runtime/src/native/libs/System.Security.Cryptography.Native/pal_evp_pkey_rsa.c -@@ -67,19 +67,6 @@ static bool ConfigureEncryption(EVP_PKEY_CTX* ctx, RsaPaddingMode padding, const - { - return false; - } -- -- // OpenSSL 3.2 introduced a change where PKCS#1 RSA decryption does not fail for invalid padding. -- // If the padding is invalid, the decryption operation returns random data. -- // See https://github.com/openssl/openssl/pull/13817 for background. -- // Some Linux distributions backported this change to previous versions of OpenSSL. -- // Here we do a best-effort to set a flag to revert the behavior to failing if the padding is invalid. -- ERR_set_mark(); -- -- EVP_PKEY_CTX_ctrl_str(ctx, "rsa_pkcs1_implicit_rejection", "0"); -- -- // Undo any changes to the error queue that may have occured while configuring implicit rejection if the -- // current version does not support implicit rejection. -- ERR_pop_to_mark(); - } - else - { --- -2.43.0 - diff --git a/runtime.linux-arm64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg b/runtime.linux-arm64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..75aaf38aa4f49794a3788507d81cfdcabb1e37e8 --- /dev/null +++ b/runtime.linux-arm64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09fcc3091fa0d81ba214036b47ae3ceba44f0c15920ad863e633e6f61ac8596f +size 43568706 diff --git a/runtime.linux-arm64.microsoft.netcore.ilasm.9.0.5.nupkg b/runtime.linux-arm64.microsoft.netcore.ilasm.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..9e90c97a26ca33305f646440861fbe12befe341c --- /dev/null +++ b/runtime.linux-arm64.microsoft.netcore.ilasm.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76e7e5b92a854cf89db0e556f7763469b5f327ed9e8f76d43b369d59065c8a5e +size 679777 diff --git a/runtime.linux-arm64.microsoft.netcore.ildasm.9.0.5.nupkg b/runtime.linux-arm64.microsoft.netcore.ildasm.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..d10956e33e71034fd2677fcefde8fc4c44f3a4cd --- /dev/null +++ b/runtime.linux-arm64.microsoft.netcore.ildasm.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b7427ed10a6631ebfe6239bf781dc858c238220abf552e425809deffe1042a6 +size 701817 diff --git a/runtime.linux-x64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg b/runtime.linux-x64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..a58099aec0366a2419823578cfef7a881558e75c --- /dev/null +++ b/runtime.linux-x64.Microsoft.DotNet.ILCompiler.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50bc2c85cc065ad6a2d89eb81cade1729ed0afe77195d28fed6a866b4bcd13bd +size 44423395 diff --git a/runtime.linux-x64.microsoft.netcore.ilasm.9.0.5.nupkg b/runtime.linux-x64.microsoft.netcore.ilasm.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..901827a5e31e4f5a7365b5d14810ed4f5a0b8c5a --- /dev/null +++ b/runtime.linux-x64.microsoft.netcore.ilasm.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0bdfe6ae0e4f33a9ea677188e8195dd881fdf9ea22450687d2e1b4acd5c4daf +size 681315 diff --git a/runtime.linux-x64.microsoft.netcore.ildasm.9.0.5.nupkg b/runtime.linux-x64.microsoft.netcore.ildasm.9.0.5.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..11f904c85aab6ee6ae17236c50c3cf091a236b58 --- /dev/null +++ b/runtime.linux-x64.microsoft.netcore.ildasm.9.0.5.nupkg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4d891a55ef62fc8b6deefff570031e5bc209b9eb9e4e8211f3bcd0dcc69936d +size 717887 diff --git a/vstest-intent-net8.0.patch b/vstest-intent-net8.0.patch deleted file mode 100644 index 6a5180749c811af18703138a0a8cc6463525c77d..0000000000000000000000000000000000000000 --- a/vstest-intent-net8.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/vstest/test/Intent/Intent.csproj b/src/vstest/test/Intent/Intent.csproj -index bb711c9256..6d0b199a9b 100644 ---- a/src/vstest/test/Intent/Intent.csproj -+++ b/src/vstest/test/Intent/Intent.csproj -@@ -2,7 +2,7 @@ - - - Exe -- net6.0 -+ net8.0 - enable - enable -