#!/bin/bash set -euo pipefail set -x sdk_version=3.1.105 arch=$(uname -m) if [[ $arch == "x86_64" ]]; then arch=x64 elif [[ $arch == "aarch64" ]]; then arch=arm64 fi if rpm -qa | grep libunwind; then echo "error: libunwind is installed. Not a good idea for bootstrapping." exit 1 fi if rpm -qa | grep dotnet ; then echo "error: dotnet is installed. Not a good idea for bootstrapping." exit 1 fi if [ -d /usr/lib/dotnet ] || [ -d /usr/lib64/dotnet ] || [ -d /usr/share/dotnet ] ; then echo "error: one of /usr/lib/dotnet /usr/lib64/dotnet or /usr/share/dotnet/ exists. Not a good idea for bootstrapping." exit 1 fi if command -v dotnet ; then echo "error: dotnet is in $PATH. Not a good idea for bootstrapping." exit 1 fi if [ ! -d dotnet-source-build-tarball ]; then if [ ! -d source-build ]; then git clone https://github.com/dotnet/source-build fi pushd source-build sed -i -e 's|cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE||' repos/coreclr.common.props git clean -xdf ./build-source-tarball.sh ../dotnet-source-build-tarball/ -- -p:DownloadSourceBuildReferencePackagesTimeoutSeconds=100000 popd fi rm -rf dotnet-v${sdk_version}-SDK dotnet-v${sdk_version}-SDK.tar.gz cp -a dotnet-source-build-tarball dotnet-v${sdk_version}-SDK cp -a source-build/artifacts/$arch/Release/Private.SourceBuilt.Artifacts.*.tar.gz dotnet-v${sdk_version}-SDK/packages/archive/Private.SourceBuilt.Artifacts.*.tar.gz tar czf dotnet-v${sdk_version}-SDK-$arch.tar.gz dotnet-v${sdk_version}-SDK