(cherry picked from commit 97f9b63507
)
Co-authored-by: Jack May <jack@solana.com>
This commit is contained in:
@ -9,16 +9,24 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
download() {
|
download() {
|
||||||
declare url=$1
|
set -e
|
||||||
|
declare url="$1/$2/$3"
|
||||||
declare version=$2
|
declare version=$2
|
||||||
declare filename=$3
|
declare filename=$3
|
||||||
declare progress=$4
|
declare dirname=$4
|
||||||
|
declare progress=$5
|
||||||
declare cache_directory=~/.cache/"$version"
|
declare cache_directory=~/.cache/"$version"
|
||||||
declare cache_filename=$cache_directory/${filename//:\//_}
|
declare cache_dirname=$cache_directory/${dirname//:\//_}
|
||||||
|
|
||||||
if [[ -r $cache_filename ]]; then
|
link() {
|
||||||
ln -s "$cache_filename" "$filename"
|
set -e
|
||||||
return
|
ln -sf "$cache_dirname" "$dirname"
|
||||||
|
ln -sf "$cache_directory/$dirname-$version.md" "$dirname-$version.md"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -r $cache_dirname ]]; then
|
||||||
|
link
|
||||||
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
declare args=(
|
declare args=(
|
||||||
@ -27,9 +35,49 @@ download() {
|
|||||||
"--retry-connrefused"
|
"--retry-connrefused"
|
||||||
"--read-timeout=30"
|
"--read-timeout=30"
|
||||||
)
|
)
|
||||||
|
set -x
|
||||||
|
mkdir -p "$cache_dirname"
|
||||||
|
pushd "$cache_dirname"
|
||||||
if wget "${args[@]}"; then
|
if wget "${args[@]}"; then
|
||||||
|
tar --strip-components 1 -jxf "$filename"
|
||||||
|
rm -rf "$filename"
|
||||||
|
echo "$url" >"../$dirname-$version.md"
|
||||||
|
popd
|
||||||
|
link
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
rm -rf "$cache_dirname"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
clone() {
|
||||||
|
set -e
|
||||||
|
declare url=$1
|
||||||
|
declare version=$2
|
||||||
|
declare dirname=$3
|
||||||
|
declare cache_directory=~/.cache/"$version"
|
||||||
|
declare cache_dirname=$cache_directory/${dirname//:\//_}
|
||||||
|
|
||||||
|
link() {
|
||||||
|
set -e
|
||||||
|
ln -sf "$cache_dirname" "$dirname"
|
||||||
|
ln -sf "$cache_directory/$dirname-$version.md" "$dirname-$version.md"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -r $cache_dirname ]]; then
|
||||||
|
link
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -x
|
||||||
mkdir -p "$cache_directory"
|
mkdir -p "$cache_directory"
|
||||||
cp "$filename" "$cache_filename"
|
pushd "$cache_directory"
|
||||||
|
cmd="git clone --recursive --depth 1 --single-branch --branch $version $url"
|
||||||
|
if $cmd; then
|
||||||
|
echo "$cmd" >"$dirname-$version.md"
|
||||||
|
popd
|
||||||
|
link
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
return 1
|
return 1
|
||||||
@ -44,7 +92,7 @@ download() {
|
|||||||
else
|
else
|
||||||
cargo install xargo
|
cargo install xargo
|
||||||
fi
|
fi
|
||||||
xargo --version > xargo.md 2>&1
|
xargo --version >xargo.md 2>&1
|
||||||
)
|
)
|
||||||
# shellcheck disable=SC2181
|
# shellcheck disable=SC2181
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
@ -53,107 +101,85 @@ fi
|
|||||||
|
|
||||||
# Install Criterion
|
# Install Criterion
|
||||||
version=v2.3.2
|
version=v2.3.2
|
||||||
if [[ ! -r criterion-$machine-$version.md ]]; then
|
if [[ ! -e criterion-$version.md ]]; then
|
||||||
(
|
(
|
||||||
filename=criterion-$version-$machine-x86_64.tar.bz2
|
set -e
|
||||||
|
|
||||||
set -ex
|
|
||||||
rm -rf criterion*
|
rm -rf criterion*
|
||||||
mkdir criterion
|
download "https://github.com/Snaipe/Criterion/releases/download" \
|
||||||
cd criterion
|
$version \
|
||||||
|
"criterion-$version-$machine-x86_64.tar.bz2" \
|
||||||
base=https://github.com/Snaipe/Criterion/releases
|
criterion \
|
||||||
download $base/download/$version/$filename $version $filename mega
|
mega
|
||||||
tar --strip-components 1 -jxf $filename
|
|
||||||
rm -rf $filename
|
|
||||||
|
|
||||||
echo "$base/tag/$version" > ../criterion-$machine-$version.md
|
|
||||||
)
|
)
|
||||||
# shellcheck disable=SC2181
|
exitcode=$?
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $exitcode -ne 0 ]]; then
|
||||||
rm -rf criterion
|
rm -rf criterion-$version.md
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install LLVM
|
# Install LLVM
|
||||||
version=v0.0.15
|
version=v0.0.15
|
||||||
if [[ ! -f llvm-native-$machine-$version.md ]]; then
|
if [[ ! -e llvm-native-$version.md ]]; then
|
||||||
(
|
(
|
||||||
filename=solana-llvm-$machine.tar.bz2
|
set -e
|
||||||
|
|
||||||
set -ex
|
|
||||||
rm -rf llvm-native*
|
rm -rf llvm-native*
|
||||||
rm -rf xargo
|
rm -rf xargo
|
||||||
mkdir -p llvm-native
|
download "https://github.com/solana-labs/llvm-builder/releases/download" \
|
||||||
cd llvm-native
|
$version \
|
||||||
|
"solana-llvm-$machine.tar.bz2" \
|
||||||
base=https://github.com/solana-labs/llvm-builder/releases
|
llvm-native \
|
||||||
download $base/download/$version/$filename $version $filename giga
|
giga
|
||||||
tar -jxf $filename
|
|
||||||
rm -rf $filename
|
|
||||||
|
|
||||||
echo "$base/tag/$version" > ../llvm-native-$machine-$version.md
|
|
||||||
)
|
)
|
||||||
exitcode=$?
|
exitcode=$?
|
||||||
if [[ $exitcode -ne 0 ]]; then
|
if [[ $exitcode -ne 0 ]]; then
|
||||||
rm -rf llvm-native
|
rm -rf llvm-native-$version.md
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install Rust-BPF
|
# Install Rust-BPF
|
||||||
version=v0.2.3
|
version=v0.2.3
|
||||||
if [[ ! -f rust-bpf-$machine-$version.md ]]; then
|
if [[ ! -e rust-bpf-$version.md ]]; then
|
||||||
(
|
(
|
||||||
filename=solana-rust-bpf-$machine.tar.bz2
|
set -e
|
||||||
|
|
||||||
set -ex
|
|
||||||
rm -rf rust-bpf
|
rm -rf rust-bpf
|
||||||
rm -rf rust-bpf-$machine-*
|
rm -rf rust-bpf-$machine-*
|
||||||
rm -rf xargo
|
rm -rf xargo
|
||||||
mkdir -p rust-bpf
|
download "https://github.com/solana-labs/rust-bpf-builder/releases/download" \
|
||||||
pushd rust-bpf
|
$version \
|
||||||
|
"solana-rust-bpf-$machine.tar.bz2" \
|
||||||
base=https://github.com/solana-labs/rust-bpf-builder/releases
|
rust-bpf \
|
||||||
download $base/download/$version/$filename $version $filename giga
|
giga
|
||||||
tar -jxf $filename
|
|
||||||
rm -rf $filename
|
|
||||||
popd
|
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
./rust-bpf/bin/rustc --print sysroot
|
./rust-bpf/bin/rustc --print sysroot
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
rustup toolchain uninstall bpf
|
rustup toolchain uninstall bpf
|
||||||
set -e
|
set -e
|
||||||
rustup toolchain link bpf rust-bpf
|
rustup toolchain link bpf rust-bpf
|
||||||
|
|
||||||
echo "$base/tag/$version" > rust-bpf-$machine-$version.md
|
|
||||||
)
|
)
|
||||||
exitcode=$?
|
exitcode=$?
|
||||||
if [[ $exitcode -ne 0 ]]; then
|
if [[ $exitcode -ne 0 ]]; then
|
||||||
rm -rf rust-bpf
|
rm -rf rust-bpf-$version.md
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install Rust-BPF Sysroot sources
|
# Install Rust-BPF Sysroot sources
|
||||||
version=v0.12
|
version=v0.12
|
||||||
if [[ ! -f rust-bpf-sysroot-$version.md ]]; then
|
if [[ ! -e rust-bpf-sysroot-$version.md ]]; then
|
||||||
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -e
|
||||||
rm -rf rust-bpf-sysroot*
|
rm -rf rust-bpf-sysroot*
|
||||||
rm -rf xargo
|
rm -rf xargo
|
||||||
cmd="git clone --recursive --depth 1 --single-branch --branch $version https://github.com/solana-labs/rust-bpf-sysroot.git"
|
clone "https://github.com/solana-labs/rust-bpf-sysroot.git" \
|
||||||
$cmd
|
$version \
|
||||||
|
rust-bpf-sysroot
|
||||||
echo "$cmd" > rust-bpf-sysroot-$version.md
|
|
||||||
)
|
)
|
||||||
exitcode=$?
|
exitcode=$?
|
||||||
if [[ $exitcode -ne 0 ]]; then
|
if [[ $exitcode -ne 0 ]]; then
|
||||||
rm -rf rust-bpf-sysroot
|
rm -rf rust-bpf-sysroot-$version.md
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user