From cd6f0240bcb85c90abd7fae4f44690d2be3acc69 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Thu, 28 May 2026 13:17:19 -0400 Subject: [PATCH] Update to .NET SDK 10.0.108 and Runtime 10.0.8 Resolves: RHEL-173907 --- .gitignore | 2 + dotnet10.0.spec | 14 ++-- release.json | 14 ++-- sources | 4 +- update-release | 186 +++++++++++++++++++++++++++++++++++++----------- 5 files changed, 165 insertions(+), 55 deletions(-) diff --git a/.gitignore b/.gitignore index 47881a7..e0e6480 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,5 @@ /dotnet-10.0.104.tar.gz.sig /dotnet-10.0.106.tar.gz /dotnet-10.0.106.tar.gz.sig +/dotnet-10.0.108.tar.gz +/dotnet-10.0.108.tar.gz.sig diff --git a/dotnet10.0.spec b/dotnet10.0.spec index d666929..6e51862 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.106 +%global upstream_tag v10.0.108 %global upstream_tag_without_v %(echo %{upstream_tag} | sed -e 's|^v||') %global hostfxr_version %{runtime_version} -%global runtime_version 10.0.6 -%global aspnetcore_runtime_version 10.0.6 -%global sdk_version 10.0.106 +%global runtime_version 10.0.8 +%global aspnetcore_runtime_version 10.0.8 +%global sdk_version 10.0.108 %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 }') @@ -77,7 +77,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 3%{?dist} +Release: 2%{?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 LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu 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 @@ -904,6 +904,10 @@ export COMPlus_LTTng=0 %changelog +* Thu May 28 2026 Omair Majid - 10.0.108-2 +- Update to .NET SDK 10.0.108 and Runtime 10.0.8 +- Resolves: RHEL-173907 + * Mon May 04 2026 Omair Majid - 10.0.106-3 - Clean up dotnet processes after build - Resolves: RHEL-173298 diff --git a/release.json b/release.json index 8ebf128..0251f1b 100644 --- a/release.json +++ b/release.json @@ -1,11 +1,11 @@ { - "release": "10.0.6", + "release": "10.0.8", "channel": "10.0", - "tag": "v10.0.106", - "sdkVersion": "10.0.106", - "runtimeVersion": "10.0.6", - "aspNetCoreVersion": "10.0.6", + "tag": "v10.0.108", + "sdkVersion": "10.0.108", + "runtimeVersion": "10.0.8", + "aspNetCoreVersion": "10.0.8", "sourceRepository": "https://github.com/dotnet/dotnet", - "sourceVersion": "47fb725acf5d7094af51aebbb5b7e5c44a3b2a77", - "officialBuildId": "20260326.1" + "sourceVersion": "94ea82652cdd4e0f8046b5bd5becbd11461482ca", + "officialBuildId": "20260429.19" } diff --git a/sources b/sources index 218bede..bf6e3d2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dotnet-10.0.106.tar.gz) = 82738c17137723cd3a326d3c71a08dc705710f4a2d63ddc689788e1c8555720e706e416511c3bd880be589b297baff33b4465ee08db1ab8d85a2c956ecaefc41 -SHA512 (dotnet-10.0.106.tar.gz.sig) = 5874515ddbecc2a9f86ea787a71308938fd08fe8d27ad7d4301eaf727009b31fe1df867ea1614535a4a25ad37d837f5d6927ee232a706fc087483356e23e380a +SHA512 (dotnet-10.0.108.tar.gz) = a48d120f3466c2ad3b7e203b313bc7aa943ff9ce9c55697fc791f28aa025ea8b31cadb6bd4040122e929f9fd31a56ac28c9d8fff4e3fd888e05040ea9c7b6471 +SHA512 (dotnet-10.0.108.tar.gz.sig) = cb77c14c5971be103a3b85ef20c1db6f0130ffc061fe652014b9748b82eb5fde80a116d904186f5cd42c2c9c787c2e7189c7ad7cf042ae16e72e6eecbeeadcdb diff --git a/update-release b/update-release index 8d78649..6aeb6cd 100755 --- a/update-release +++ b/update-release @@ -1,35 +1,76 @@ #!/bin/bash -# Usage: -# ./update-release runtime-version|latest-release|latest-commit [--bug bug-id] [--tarball tarball-name] [--release-json release-json] [--larger-rpm-release] - set -euo pipefail IFS=$'\n\t' -set -x + +# Notes: this only works with 1xx sdks, the versions shipped in Fedora/RHEL/CentOS Stream. print_usage() { echo " Usage:" - echo " ./update-release runtime-version|latest-release|latest-commit [--bootstrap] [--bug bug-id] [--tarball tarball-name] [--release-json release-json] [--larger-rpm-release]" + echo " ./update-release [VERSION] [--bootstrap] [--bug bug-id] [--tarball tarball-name] [--release-json release-json] [--larger-rpm-release]" + echo "" + echo "VERSION can be:" + echo " - latest-release: latest release for this major.minor version of .NET (default unless --release-json and --tarball are used)" + echo " - exact version (SDK or runtime, eg, 9.0.5 or 10.0.124)" + echo " - omitted if --release-json and --tarball are used (uses local mode)" + echo " - latest-commit: the latest commit for this major.minor version of .NET" + echo "" + echo "If not specified, 'latest-release' is the default." + echo "" + echo "When done, it creates the following files:" + echo " - release.json" + echo " - git-commit-message: commit message to use with the git commit for the update" + echo "" + echo "" + echo "Options:" + echo " --bootstrap Build binary bootstrap artifacts for this release." + echo " --bug bug-id Add the named bug/issue identifier to the changelog and commit message." + echo " --tarball tarball-name Use the supplied tarball. Use with --release-json." + echo " --release-json release-json Use the supplied release.json. Use with --tarball." + echo " --larger-rpm-release Set the release to 2." echo "" - echo "The runtime-version parameter needs to match the github release name." - echo "For preview releases, runtime-version should be of the form '9.0 Preview 1'." } download_release_json() { version=$1 - cat > query < query <<'EOF' + [ .[] | select(.name | test("\\.NET .*\($v)(\\.1\\d{2}| (Preview|RC) \\d+)")) ] + | first + | { tag_name: .tag_name, + tarball: .tarball_url, + signature: .assets[].browser_download_url | select(. | endswith("tar.gz.sig")), + release_manifest: .assets[] | select(.name == "release.json") | .browser_download_url } EOF + elif [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + # major.minor.patch. Might be the SDK version or Runtime version + cat > query <<'EOF' + [ .[] | select(.name | test("\\.NET .*\($v)")) ] + | first + | { tag_name: .tag_name, + tarball: .tarball_url, + signature: .assets[].browser_download_url | select(. | endswith("tar.gz.sig")), + release_manifest: .assets[] | select(.name == "release.json") | .browser_download_url } +EOF + else + echo "error: unable to parse $version" + exit 1 + fi curl https://api.github.com/repos/dotnet/dotnet/releases \ - | jq --from-file query > release.metadata.github + | jq --arg v "$version" --from-file query > release.metadata.github curl -L "$(jq -r .release_manifest release.metadata.github)" -o release.json } +assert_file_exists() { + file=$1 + if [[ ! -f "${file}" ]]; then + echo "error: ${file} not found" + exit 1 + fi +} + + user_provided_tarball_name="" rpm_release=1 @@ -54,11 +95,13 @@ while [[ "$#" -gt 0 ]]; do ;; --release-json) release_json="$2" + assert_file_exists "${release_json}" shift; shift; ;; --tarball) user_provided_tarball_name="$2" + assert_file_exists "${user_provided_tarball_name}" shift; shift; ;; @@ -73,29 +116,59 @@ while [[ "$#" -gt 0 ]]; do esac done +set -x + spec_files=( ./*.spec ) spec_file="${spec_files[0]}" +assert_file_exists "$spec_file" dotnet_major_minor_version=$spec_file dotnet_major_minor_version=${dotnet_major_minor_version#./dotnet} dotnet_major_minor_version=${dotnet_major_minor_version%.spec} +if ! [[ "$dotnet_major_minor_version" =~ ^[0-9]+\.[0-9]+$ ]]; then + echo "error: Unable to guess the current .NET major.minor version. Expected to get a two-digit .NET version, but got $dotnet_major_minor_version"; + exit 1 +fi echo "Updating .NET $dotnet_major_minor_version" -runtime_version=${positional_args[0]:-} +version=${positional_args[0]:-} sdk_version="" -tag=v${runtime_version} created_release_json=0 -if [[ ${runtime_version} == latest-release ]]; then - if [[ -n "${release_json:-}" ]]; then - cp -a "${release_json}" release.json +if [[ ${version} == "" ]]; then + if [[ -n "${release_json:-}" ]] || [[ -n "${user_provided_tarball_name:-}" ]]; then + if [[ -n "${release_json:-}" ]] && [[ -n "${user_provided_tarball_name:-}" ]]; then + version=local + else + echo "error: please provide both --release-json and --tarball for local-only mode" + exit 1 + fi else - download_release_json "${dotnet_major_minor_version}" + version=latest-release fi -elif [[ ${runtime_version} == latest-commit ]]; then +fi + +if [[ ${version} == latest-release ]]; then + if [[ -n "${release_json:-}" ]]; then + echo "error: don't know how to combine upstream latest release's release.json with the locally supplied one" + exit 1 + fi + download_release_json "${dotnet_major_minor_version}" +elif [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+ ]]; then # matches x.y.z (and x.y.z-preview.N, etc.) + if [[ -n "${release_json:-}" ]] && [[ -n "${user_provided_tarball_name:-}" ]] ; then + echo "error: don't know how to combine explicit upstream version with release.json and tarball" + exit 1 + fi + download_release_json "${version}" +elif [[ ${version} == latest-commit ]]; then + branch=release/${dotnet_major_minor_version}.1xx + if [[ ${dotnet_major_minor_version} == 11.0 ]]; then + branch=main + fi + cat > query <