From 148eb8e60c1009a26a08ac5f8ef518774e85a9d9 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Fri, 24 Jan 2025 16:42:54 -0500 Subject: [PATCH] Rebootstrap .NET 9 The build of .NET 9 for s390x that's in the buildroot is broken (https://github.com/dotnet/runtime/issues/107387) and produces broken .NET SDKs when used to build them. We need to re-bootstrap to work around that. Related: RHEL-71549 --- .gitignore | 4 ++++ dotnet9.0.spec | 63 +++++++++++++++++++++++++++++++------------------- sources | 6 +++-- 3 files changed, 47 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 376cf5f..f618930 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,7 @@ /dotnet-prebuilts-9.0.100-rc.1.24452.1-s390x.tar.gz /dotnet-9.0.1.tar.gz /dotnet-9.0.1.tar.gz.sig +/dotnet-v9.0.1-x64-bootstrap.tar.gz +/dotnet-sdk-9.0.101-linux-arm64.tar.gz +/dotnet-prebuilts-9.0.101-ppc64le.tar.gz +/dotnet-prebuilts-9.0.101-s390x.tar.gz diff --git a/dotnet9.0.spec b/dotnet9.0.spec index c485fcd..c5e9930 100644 --- a/dotnet9.0.spec +++ b/dotnet9.0.spec @@ -1,4 +1,4 @@ -%bcond_with bootstrap +%bcond_without bootstrap # LTO triggers a compilation error for a source level issue. Given that LTO should not # change the validity of any given source and the nature of the error (undefined enum), I @@ -70,7 +70,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 0.9%{?dist} +Release: 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 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 @@ -81,22 +81,22 @@ URL: https://github.com/dotnet/ # ./build-dotnet-bootstrap-tarball %%{upstream_tag} Source0: dotnet-%{upstream_tag}-x64-bootstrap.tar.gz # The bootstrap SDK version is one listed in the global.json file of the main source archive -%global bootstrap_sdk_version 9.0.100-rc.1.24452.12 +%global bootstrap_sdk_version 9.0.101 # Binaries can be at one of several different URLs: # GA releases: -# Source1: https://dotnetcli.azureedge.net/dotnet/Sdk/%%{bootstrap_sdk_version}/dotnet-sdk-%%{bootstrap_sdk_version}-linux-arm64.tar.gz +Source1: https://builds.dotnet.microsoft.com/dotnet/Sdk/%{bootstrap_sdk_version}/dotnet-sdk-%{bootstrap_sdk_version}-linux-arm64.tar.gz # Preview releases: -Source1: https://dotnetbuilds.azureedge.net/public/Sdk/%{bootstrap_sdk_version}/dotnet-sdk-%{bootstrap_sdk_version}-linux-arm64.tar.gz +# Source1: https://ci.dot.net/public/Sdk/%%{bootstrap_sdk_version}/dotnet-sdk-%%{bootstrap_sdk_version}-linux-arm64.tar.gz # To generate ppc64le and s390x archives: # 1. Find the source commits and versions of repos, use one of: -# - https://dotnetbuilds.azureedge.net/public/Sdk/%%{bootstrap_sdk_version}/productCommit-linux-x64.txt -# - https://dotnetcli.azureedge.net/dotnet/Sdk/%%{bootstrap_sdk_version}/productCommit-linux-x64.txt +# - https://builds.dotnet.microsoft.com/dotnet/Sdk/%%{bootstrap_sdk_version}/productCommit-linux-x64.txt +# - https://ci.dot.net/public/Sdk/%%{bootstrap_sdk_version}/productCommit-linux-x64.txt # 2. Find the VMR sync commit using `git log --grep $commit` # 3. Build the VMR commit in cross-build mode for the architecture # 4. Use `build-prebuilt-archive` to create the archive from the VMR # 5. Update the version below to match the SDK that was built from the VMR # The ppc64le/s390x SDK version is one produced -%global bootstrap_sdk_version_ppc64le_s390x 9.0.100-rc.1.24452.1 +%global bootstrap_sdk_version_ppc64le_s390x 9.0.101 Source2: dotnet-prebuilts-%{bootstrap_sdk_version_ppc64le_s390x}-ppc64le.tar.gz Source3: dotnet-prebuilts-%{bootstrap_sdk_version_ppc64le_s390x}-s390x.tar.gz %else @@ -566,6 +566,8 @@ rm -rf src/runtime/src/native/external/zlib-intel rm -rf src/runtime/src/native/external/zlib-ng %endif +lscpu + %build @@ -650,7 +652,7 @@ system_libs= system_libs=$system_libs+zlib+ %endif -%ifarch ppc63le s390x +%ifarch ppc64le s390x max_attempts=3 %else max_attempts=1 @@ -670,25 +672,38 @@ function retry_until_success { return $exit_code } -VERBOSE=1 retry_until_success $max_attempts \ - timeout 5h \ - ./build.sh \ - --source-only \ - --release-manifest %{SOURCE5} \ +cat >dotnet-rpm-build.sh < dotnet.sh diff --git a/sources b/sources index 97663a6..e5526b0 100644 --- a/sources +++ b/sources @@ -1,2 +1,4 @@ -SHA512 (dotnet-9.0.1.tar.gz) = 90a613b8efc85b8c5d852c239e507acb3cf00ed50303db98e7567924ba21271a4d6aa0bb63e6da3703beb97f8f64d6ca36fda000bc9ff537b034ea43455f19be -SHA512 (dotnet-9.0.1.tar.gz.sig) = 3b26d79ad2f899c8952695e60ce0d9da7f6b9c0bf274caa4bc668fe24195349fe6faa5a06cd2fd260bf68511d6aa90383454e910a635d034473c2fd216cb2158 +SHA512 (dotnet-v9.0.1-x64-bootstrap.tar.gz) = bdcbd27c74a699c16ee63d4eb54dd14f912c42f1fc8594409cca8c0eec9422961a0195af435c2308368938d685bb3fe75aa4e5cb28b211a2ad6b5c87cf391357 +SHA512 (dotnet-sdk-9.0.101-linux-arm64.tar.gz) = c5f9c17dded5101cb4b65ad1033ae4d82fc5b04303bdce4eb61a6dc47efa84202bd726d05caf117e536a01bd78ad773b8d23cbf43bc655e5eb9912b12078e0b1 +SHA512 (dotnet-prebuilts-9.0.101-ppc64le.tar.gz) = 14fe151511eb21feb45cd4818a355ab7df74b29952ee1cdf4f889f16bea5b58871a3ab9f416cb37ad7cd690e7e42adb4523a6457b216ea1f028ac221337ebb3e +SHA512 (dotnet-prebuilts-9.0.101-s390x.tar.gz) = b55be36fbbdb272f9d9699b32c501f321ec9dcd52071a6122c08f8bb3be4ef3a5945d0c33d9afce1c6a552f4e3277d77c722f28095550a9a9a0034c3b53f467f