diff --git a/.gitignore b/.gitignore index 55b456c..70296eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -dotnet-10.0.109.tar.gz +dotnet-10.0.110.tar.gz diff --git a/dotnet-10.0.109.tar.gz.sig b/dotnet-10.0.109.tar.gz.sig deleted file mode 100644 index 2bf13dc..0000000 --- a/dotnet-10.0.109.tar.gz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: BSN Pgp v1.0.0.0 - -iQIcBAABCAAGBQJqDgyEAAoJEP2/U8JNtIcuS7wQAM3AiMKaofARXknfWrULPOU4 -HAwcU3vpJpz/Vur55QcPrsbZD4eP4FFXRD5/nm5MJ7I+lDL0s39/31MkbAekD3Yk -jh/kbqD77E2s6fRzMdhKBPQM2ZJcSf10gKp6bQWV57la7tIXdNwVJLi0a9VOh5kv -bnyaDTckxaKyKfvKb2fRNDSw/lB8j9RhS7b7qGLMIlsSwz5e6cv/5LpSMUpPylrj -BD5tsoURSbnd4fp9V/pRamdggVJnyBLuefR93w6yJPDT+AsnxEG4WJef5P9YRhpd -3LcAIPfQJaOOt9eggd10r3bIP6mUkIWFt8pTCKIoi7naAC5mZHfTDsM4x4+JHKVy -NQ5/GXPljMkzQkW3kpSPbn8ckf9n4BcHN5hgwKAHRAv6JOxdzEReGthNcbfb+Cgp -jmGoxHoPDV5SIly7bW16wZyeV2LVIhRUPwWso1yy1K9Bjvt/jmyl24itQElRGzDg -uVjwP2X+1+aZqd74KWN3xoxk9dAwFTwueNOYXbl7yIqVddKjS+66KmDE6Zy9tk9g -rWuIvAaOm8yuV40wDkqy8NS4K+9khYpL+jRDSmXmikbm203YCZPxCbeDZl0pMGQ0 -Qe+d3xS4aFYqGZKvkxaVtlc9QO6Pfz3a/PnvprD6NRiaWjAPjR1+tZJadCyK4adB -DEaab1kIw6BBijCO3lMp -=9owf ------END PGP SIGNATURE----- diff --git a/dotnet-10.0.110.tar.gz.sig b/dotnet-10.0.110.tar.gz.sig new file mode 100644 index 0000000..9c3def3 --- /dev/null +++ b/dotnet-10.0.110.tar.gz.sig @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BSN Pgp v1.0.0.0 + +iQIcBAABCAAGBQJqPtR+AAoJEP2/U8JNtIcuoFsP/j7yeuxCmUFM/j4qvVK6aim+ +QlmPA8vvOF0KNDLCojQ7nG/nfhEZD5vIXdXvOuyxSA6aKXCCUKb3MojHXrCGHlTR +29Bd4PyOedZfTh/ZqJogP1fLdKMsxlt3FU5kevQwXo+KKdN3augWYMi9nDzbv3s9 +EWJdWcIW+e4/weLFidsO974Vd8WJr5HEkF1oNOEi0ylC1/SsgJ6sSZRK3lve7OTJ +emJBApC+wEmzcU7m9GWf4O7exeja9HDtthaTdj2RtYTD15rM9F4R7ZkSKQbb4VkS +Kvwe2ms65SkG16kksmZXIBOZQv4K16EZWA7nQjZjeivZ/sbuyd20QfhnXJK/1EX4 +F5rvyJ4ZLoNAFejtxYS7IdAZjGurtcsa/rGz8sGuJbFvrKkzfbND84MhWnCTU4sm +5900iZl9ASeGq3eYqeurqnGU4nKIGQs+qm5PFDmXLP8s/kO5XAjiLsHWpIvh5jWn +23/6Z4vgA+Jj/7uwniXqXUwfGX6FCdhgBPXGX9GQza56pwNC9GyjvEbBHPb0+sHd +IIpUY+4MQqjX4GHDe9T9FmhM416jaBxKr9jmeUe5vJo45vPdIcWFGvQwO75QWUeS +zVr2nKPt/FglnJHGJ3I2k8JM5av4IgAyS+U9g6zilKakeVu38SIJs4kgxdXv7UUB +bRD8e4tpulUCVArqCMT5 +=uyrq +-----END PGP SIGNATURE----- diff --git a/dotnet10.0.spec b/dotnet10.0.spec index 2c34179..da8c3ab 100644 --- a/dotnet10.0.spec +++ b/dotnet10.0.spec @@ -14,13 +14,13 @@ # upstream can produce releases with a different tag than the SDK version #%%global upstream_tag v%%{runtime_version} -%global upstream_tag v10.0.109 +%global upstream_tag v10.0.110 %global upstream_tag_without_v %(echo %{upstream_tag} | sed -e 's|^v||') %global hostfxr_version %{runtime_version} -%global runtime_version 10.0.9 -%global aspnetcore_runtime_version 10.0.9 -%global sdk_version 10.0.109 +%global runtime_version 10.0.10 +%global aspnetcore_runtime_version 10.0.10 +%global sdk_version 10.0.110 %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{aspnetcore_runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -663,10 +663,8 @@ system_libs= %ifarch ppc64le s390x max_attempts=5 -timeout=5h %else max_attempts=3 -timeout=2.5h %endif function retry_until_success { @@ -676,6 +674,8 @@ function retry_until_success { 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 @@ -683,6 +683,66 @@ function retry_until_success { 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 < dotnet.sh @@ -937,6 +993,14 @@ ps aux %changelog +* Wed Jul 08 2026 Satish Mane - 10.0.110-1 +- Update to .NET SDK 10.0.110 and Runtime 10.0.10 +- Resolves: RHEL-192463 + +* Thu Jul 02 2026 Tom Deseyn - 10.0.109-2 +- Reduce time to detect hanging builds +- Resolves: RHEL-191640 + * Wed Jun 03 2026 Tom Deseyn - 10.0.109-1 - Update to .NET SDK 10.0.109 and Runtime 10.0.9 - Resolves: RHEL-181559 diff --git a/release.json b/release.json index da84916..7c92fe0 100644 --- a/release.json +++ b/release.json @@ -1,11 +1,11 @@ { - "release": "10.0.9", + "release": "10.0.10", "channel": "10.0", - "tag": "v10.0.109", - "sdkVersion": "10.0.109", - "runtimeVersion": "10.0.9", - "aspNetCoreVersion": "10.0.9", + "tag": "v10.0.110", + "sdkVersion": "10.0.110", + "runtimeVersion": "10.0.10", + "aspNetCoreVersion": "10.0.10", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "901ca941248413c79832d2fdbd709da0c4386353", - "officialBuildId": "20260520.13" + "sourceVersion": "f7d90799ce4ef09a0bb257852a57248d2a8fb8dd", + "officialBuildId": "20260626.16" } diff --git a/sources b/sources index 027e96f..ec144bc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dotnet-10.0.109.tar.gz) = e4050699b782126604aae41e8cfc0366741c0d3e03255e72fcb22560bceae4e503d8f12dfad58d88826b233e0f2843d125efd1f86d6ab18f7a356d6350dc18a2 +SHA512 (dotnet-10.0.110.tar.gz) = cd830669c4dfd3f3bbf2da67c618f58846032b164eb6194c4306cf56ac02d1cea536908ca12264737f3fdbcc948d84fdadb0208729698c81a0667fc11101ff6f