import CS dotnet8.0-8.0.130-2.el9

This commit is contained in:
AlmaLinux RelEng Bot 2026-09-03 07:38:23 -04:00
parent e027ef4a61
commit b4eacb6de0
8 changed files with 298 additions and 33 deletions

View File

@ -1 +1 @@
dcef67b90dd60f9968efb9b68507427f257b815d SOURCES/dotnet-8.0.8.tar.gz
0acde2b846e7cead4155555799e980d7a520c7bb SOURCES/dotnet-8.0.130.tar.gz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/dotnet-8.0.8.tar.gz
SOURCES/dotnet-8.0.130.tar.gz

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: BSN Pgp v1.0.0.0
iQIcBAABCAAGBQJqbTE6AAoJEP2/U8JNtIcuuqIP/1iuGAOagY4qv3OQ4dy6c5BU
h6cdzZqLtpQmoHPKjEFx+HASq6+VPtFBVX+m2V0kEwHdKheRjeGeC3CioqWPj9n6
zjvS9aURfNhbpqbkZhcB4HaAoJQkNeF3QKO0uI0dV60WmXZhRzLrK5nMvdfI1LIe
ubr1M2M9DMwfjlPKpWCXGRvLfohG7T+l6NSsB4ntdp31yBthbRzZfUeDq1qDO7BF
msbasGZfKRGiKFpvmd3nxrINjQqh8/NUGyVkykD2oA5dHWvK9pznafYGwsd2e6YD
xzs+vczdsVQ7QK+ozKry3QvhVogykLgDsQ0ezA7FLUZIpX83DVcGBL/SW732X/rC
DT38L4KPjOxbTEdOE4lZzJNIgXGEIxL4srnZBbajPLWyk0ToMfxyKPvWA1xeYJJ2
M55em6KvdHQjlunUE5J8v2xgLrFazJhKmv0rgS3OtD3VrWP8fOcCtfF4jjCq2P68
/Wd6dgV9HpunKQhfT+rSIzJMVAf6RGucBGE+GCosCF0ZuGMKuQnZBqwR3Jj+4hv+
Bhd+296INbmhs066W2n9D0Gr0pYmyGObt5Mk8ffHs/nlEtcgfaXgryZK0ZN7amC0
2snnHNlxrcT/09+N6km/74FVNP5nk1FGECJLp82Q6PEjaGxDDpgix7neNbKH0Fu7
EN5MSdcW8azoS5tbR7NT
=xVMK
-----END PGP SIGNATURE-----

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: BSN Pgp v1.0.0.0
iQIcBAABCAAGBQJmqPvcAAoJEP2/U8JNtIcuCjUP/1JCyxHFjLoVH296sDflBrJ/
NA/Y4x0YR/NVLchBk//G7/RzHab7x0EU4fRKkEecKQxPyqm4SH+zfEf9sg5txbES
F1Fx5j0e89BzivSIJWgr8nzuQv0tQGrraIAsqPC1wrIUvDSuLXW9URCwitOasRS4
/9FKOjISE1L2pj0+QWXzcl+QJN8A0MvtnEZfh0BbvzwldWgyi72A02t2gp6ooXMf
FOfgdd20ufPENaB+TUc2C8eU9IaSYxwIPNy8kRN/iVRc8eYqgKvSDxUgb9aJG+Do
Bc/HoqRVG3bvi3LZt7nwyvVeQfWYo1HB9/aEqyyqmsqsg9z83UsdAuQcidV45ae+
hen0hxR3BpJyOpT/s/PVH7fdxqVWvszxBTW/ICm5HKMO7/w7CxTLVdPjyj9mXzew
Sbo0xvVvSML72m33X5vFxMD3/zlYYUHTtad6D2rE6vvk5hexG3orbv5ybkUmUWiM
EtMta++yXJwRq2Ac8ucjiLr+EARAfDbdXT6C6aPJpbF4IGQe1p/dwpXeKrDLGSNS
G7d780b44hKt8ciaFLlbhe9qCc6DlsQtV3AryqH/vlm81+oM6y8vJMAHknyZ6WL/
9AdSsVVa4BrNOsGeVLzNSTtqQiRW9KkK2XPI1dslxfy6KrKIrVYCFuIYsuJ8Ibmp
QuIzm0BW8IGU3ZZSUAyZ
=A/0i
-----END PGP SIGNATURE-----

View File

@ -1,10 +1,10 @@
{
"release": "8.0.8",
"release": "8.0.30",
"channel": "8.0",
"tag": "v8.0.8",
"sdkVersion": "8.0.108",
"runtimeVersion": "8.0.8",
"aspNetCoreVersion": "8.0.8",
"tag": "v8.0.130",
"sdkVersion": "8.0.130",
"runtimeVersion": "8.0.30",
"aspNetCoreVersion": "8.0.30",
"sourceRepository": "https://github.com/dotnet/dotnet",
"sourceVersion": "e78e8a64f20e61e1fea4f24afca66ad1dc56285f"
"sourceVersion": "9e39aff286efe0c252f24f4c1058af990acfc076"
}

View File

@ -3,9 +3,9 @@ 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 @@
<LangVersion>preview</LangVersion>
<Nullable>disable</Nullable>
<OutputType>Exe</OutputType>
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
+ <UseAppHost>false</UseAppHost>
</PropertyGroup>
<PropertyGroup>

View File

@ -0,0 +1,46 @@
From: Tom Deseyn <tdeseyn@redhat.com>
Subject: [PATCH] Avoid compiler optimization on embedded apphost hash
Backport of https://github.com/dotnet/runtime/pull/110554 to .NET 8.0.
---
src/runtime/src/native/corehost/corehost.cpp | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
--- a/src/runtime/src/native/corehost/corehost.cpp
+++ b/src/runtime/src/native/corehost/corehost.cpp
@@ -40,6 +40,19 @@
#define EMBED_HASH_LO_PART_UTF8 "74e592c2fa383d4a3960714caef0c4f2"
#define EMBED_HASH_FULL_UTF8 (EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8) // NUL terminated
+// This avoids compiler optimization which cause EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8
+// to be placed adjacent causing them to match EMBED_HASH_FULL_UTF8 when searched for replacing.
+// See https://github.com/dotnet/runtime/issues/109611 for more details.
+static bool compare_memory_nooptimization(volatile const char* a, volatile const char* b, size_t length)
+{
+ for (size_t i = 0; i < length; i++)
+ {
+ if (*a++ != *b++)
+ return false;
+ }
+ return true;
+}
+
bool is_exe_enabled_for_execution(pal::string_t* app_dll)
{
constexpr int EMBED_SZ = sizeof(EMBED_HASH_FULL_UTF8) / sizeof(EMBED_HASH_FULL_UTF8[0]);
@@ -63,11 +76,10 @@
// So use two parts of the string that will be unaffected by the edit.
size_t hi_len = (sizeof(hi_part) / sizeof(hi_part[0])) - 1;
size_t lo_len = (sizeof(lo_part) / sizeof(lo_part[0])) - 1;
-
- std::string binding(&embed[0]);
- if ((binding.size() >= (hi_len + lo_len)) &&
- binding.compare(0, hi_len, &hi_part[0]) == 0 &&
- binding.compare(hi_len, lo_len, &lo_part[0]) == 0)
+ size_t embed_len = strlen(&embed[0]);
+ if (embed_len >= (hi_len + lo_len)
+ && compare_memory_nooptimization(&embed[0], hi_part, hi_len)
+ && compare_memory_nooptimization(&embed[hi_len], lo_part, lo_len))
{
trace::error(_X("This executable is not bound to a managed DLL to execute. The binding value is: '%s'"), app_dll->c_str());
return false;

View File

@ -8,15 +8,19 @@
%global dotnetver 8.0
%global host_version 8.0.8
%global runtime_version 8.0.8
%global aspnetcore_runtime_version %{runtime_version}
%global sdk_version 8.0.108
# Only the package for the latest dotnet version should provide RPMs like
# dotnet-host and netstandard-targeting-pack-2.1
%global is_latest_dotnet 0
%global host_version 8.0.30
%global runtime_version 8.0.30
%global aspnetcore_runtime_version 8.0.30
%global sdk_version 8.0.130
%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 }')
%global upstream_tag v%{runtime_version}
%global upstream_tag v8.0.130
%global upstream_tag_without_v %(echo %{upstream_tag} | sed -e 's|^v||')
%global host_rpm_version %{host_version}
@ -94,6 +98,10 @@ 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
# Backport of https://github.com/dotnet/runtime/pull/110554
# Fixes apphost hash duplication under compiler optimizations
# https://github.com/dotnet/runtime/issues/109611
Patch6: runtime-apphost-compare-noopt.patch
ExclusiveArch: aarch64 ppc64le s390x x86_64
@ -388,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
@ -533,7 +543,98 @@ export EXTRA_LDFLAGS="$LDFLAGS"
# suggested compile-time change doesn't work, unfortunately.
export COMPlus_LTTng=0
VERBOSE=1 ./build.sh \
%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 ))
# Clean stale build state so retries start fresh.
rm -rf .packages $(find . -name artifacts -type d)
"$@"
exit_code=$?
done
set -e
return $exit_code
}
# Runs a command and kills it if it produces no output.
# Use a longer timeout on machines with fewer cores since builds are slower.
function output_timeout {
# 30m on machines with more than 4 cores, 60m on smaller machines where builds are slower.
# The aarch64 Neoverse N1 CI machines have 4 cores and need the longer timeout.
local nprocs=$(nproc)
local idle_timeout=1800
if (( nprocs <= 4 )); then
idle_timeout=3600
fi
# Create a pipe we'll read the output from for timeout detection.
local fifo=$(mktemp -u)
mkfifo "$fifo"
# Create a process group so we can kill every process including children.
# And use a long timeout (5h) in (the unlikely) case output timeout detection continues to be triggered.
setsid timeout --foreground 5h "$@" &> "$fifo" &
local cmd_pid=$!
# Read lines from the output with a timeout.
# Disable tracing to avoid 'set -x' noise from the read loop appearing in the output.
local timed_out=false
local traceflags=$-
set +x
while true; do
local rc=0
IFS= read -t $idle_timeout -r line || rc=$?
if (( rc == 0 )); then
printf '%s\n' "$line"
elif (( rc > 128 )); then
echo "output_timeout: no output for ${idle_timeout}s" >&2
timed_out=true
break
else
[[ -z $line ]] || printf '%s\n' "$line"
break
fi
done < "$fifo"
[[ $traceflags != *x* ]] || set -x
if $timed_out; then
# Hang detected: kill the process group, then collect the exit code.
kill -9 -- -$cmd_pid 2>/dev/null || true
wait $cmd_pid 2>/dev/null
local exit_code=$?
else
# Normal exit: collect the real exit code, then clean up any orphaned processes.
wait $cmd_pid 2>/dev/null
local exit_code=$?
kill -9 -- -$cmd_pid 2>/dev/null || true
fi
# Cleanup.
rm -f "$fifo"
return $exit_code
}
cat >dotnet-rpm-build.sh <<EOF
#!/bin/bash
set -euo pipefail
set -x
find -depth -name 'artifacts' -type d -print -exec rm -rf {} \;
./build.sh \
%if %{without bootstrap}
--with-sdk previously-built-dotnet \
%endif
@ -545,7 +646,14 @@ VERBOSE=1 ./build.sh \
/p:MinimalConsoleLogOutput=false \
/p:ContinueOnPrebuiltBaselineError=true \
/v:n \
/p:LogVerbosity=n \
/p:LogVerbosity=n
EOF
chmod +x dotnet-rpm-build.sh
VERBOSE=1 retry_until_success $max_attempts \
output_timeout \
./dotnet-rpm-build.sh
sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE21} > dotnet.sh
@ -594,6 +702,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/
@ -618,6 +727,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/
@ -641,6 +751,19 @@ 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
@ -648,8 +771,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 )
@ -657,6 +782,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
@ -672,6 +798,7 @@ export COMPlus_LTTng=0
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/dotnet
%endif
%files -n dotnet-hostfxr-%{dotnetver}
%dir %{_libdir}/dotnet/host/fxr
@ -714,6 +841,98 @@ export COMPlus_LTTng=0
%changelog
* Fri Aug 14 2026 Omair Majid <omajid@redhat.com> - 8.0.130-2
- Update to .NET SDK 8.0.130 and Runtime 8.0.30
- Resolves: RHEL-235469
* Thu Jul 23 2026 Satish Mane <satmane@redhat.com> - 8.0.129-2
- Update to .NET SDK 8.0.129 and Runtime 8.0.29
- Resolves: RHEL-192465
* Thu Jul 02 2026 Tom Deseyn <tdeseyn@redhat.com> - 8.0.128-3
- Reduce time to detect hanging builds
- Resolves: RHEL-191649
* Wed Jun 10 2026 Tom Deseyn <tdeseyn@redhat.com> - 8.0.128-2
- Update to .NET SDK 8.0.128 and Runtime 8.0.28
- Resolves: RHEL-181053
* Thu May 28 2026 Omair Majid <omajid@redhat.com> - 8.0.127-2
- Update to .NET SDK 8.0.127 and Runtime 8.0.27
- Resolves: RHEL-173921
* Fri Apr 17 2026 Omair Majid <omajid@redhat.com> - 8.0.126-2
- Update to .NET SDK 8.0.126 and Runtime 8.0.26
- Resolves: RHEL-163418
* Fri Mar 27 2026 Dominik Rehák <drehak@redhat.com> - 8.0.125-2
- Update to .NET SDK 8.0.125 and Runtime 8.0.25
- Resolves: RHEL-152932
* Wed Feb 11 2026 Omair Majid <omajid@redhat.com> - 8.0.124-2
- Update to .NET SDK 8.0.124 and Runtime 8.0.24
- Resolves: RHEL-144966
* Wed Jan 14 2026 Omair Majid <omajid@redhat.com> - 8.0.123-2
- Update to .NET SDK 8.0.123 and Runtime 8.0.23
- Resolves: RHEL-138652
* Wed Nov 12 2025 Omair Majid <omajid@redhat.com> - 8.0.122-2
- Update to .NET SDK 8.0.122 and Runtime 8.0.22
- Resolves: RHEL-125738
* Tue Oct 14 2025 Omair Majid <omajid@redhat.com> - 8.0.121-2
- Update to .NET SDK 8.0.121 and Runtime 8.0.21
- Resolves: RHEL-116867
* Wed Sep 10 2025 Omair Majid <omajid@redhat.com> - 8.0.120-2
- Update to .NET SDK 8.0.120 and Runtime 8.0.20
- Resolves: RHEL-112260
* Mon Aug 11 2025 Omair Majid <omajid@redhat.com> - 8.0.119-2
- Update to .NET SDK 8.0.119 and Runtime 8.0.19
- Resolves: RHEL-106723
* Tue Jul 08 2025 Omair Majid <omajid@redhat.com> - 8.0.118-2
- Update to .NET SDK 8.0.118 and Runtime 8.0.18
- Resolves: RHEL-100592
* Wed Jun 11 2025 Omair Majid <omajid@redhat.com> - 8.0.117-2
- Update to .NET SDK 8.0.117 and Runtime 8.0.17
- Resolves: RHEL-94417
* Tue May 13 2025 Omair Majid <omajid@redhat.com> - 8.0.116-2
- Update to .NET SDK 8.0.116 and Runtime 8.0.16
- Resolves: RHEL-89445
* Wed Apr 09 2025 Omair Majid <omajid@redhat.com> - 8.0.115-2
- Update to .NET SDK 8.0.115 and Runtime 8.0.15
- Resolves: RHEL-85276
* Tue Mar 11 2025 Omair Majid <omajid@redhat.com> - 8.0.114-2
- Update to .NET SDK 8.0.114 and Runtime 8.0.14
- Resolves: RHEL-81641
* Mon Feb 17 2025 Omair Majid <omajid@redhat.com> - 8.0.113-2
- Update to .NET SDK 8.0.113 and Runtime 8.0.13
- Resolves: RHEL-76899
* Thu Jan 16 2025 Omair Majid <omajid@redhat.com> - 8.0.112-2
- Update to .NET SDK 8.0.112 and Runtime 8.0.12
- Resolves: RHEL-71555
* Thu Nov 14 2024 Omair Majid <omajid@redhat.com> - 8.0.111-2
- Update to .NET SDK 8.0.111 and Runtime 8.0.11
- Resolves: RHEL-65367
* Fri Oct 18 2024 Omair Majid <omajid@redhat.com> - 8.0.110-3
- Disable packages provided by another .NET version
- Related: RHEL-60801
* Tue Oct 15 2024 Omair Majid <omajid@redhat.com> - 8.0.110-2
- Update to .NET SDK 8.0.110 and Runtime 8.0.10
- Resolves: RHEL-60801
* Wed Aug 14 2024 Omair Majid <omajid@redhat.com> - 8.0.108-2
- Update to .NET SDK 8.0.108 and Runtime 8.0.8
- Resolves: RHEL-52387