Skip to content

Commit f3b10d6

Browse files
committed
Add mirrors for file downloads.
1 parent 87852f0 commit f3b10d6

File tree

7 files changed

+74
-22
lines changed

7 files changed

+74
-22
lines changed

docker/dragonfly.sh

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ main() {
1111
local binutils=2.32 \
1212
dragonfly=6.0.1_REL \
1313
gcc=10.3.0 \
14-
target=x86_64-unknown-dragonfly \
15-
url="https://mirror-master.dragonflybsd.org/iso-images"
14+
target=x86_64-unknown-dragonfly
1615
if [[ $# != "0" ]]; then
1716
nproc="${1}"
1817
fi
@@ -33,10 +32,10 @@ main() {
3332
pushd "${td}"
3433
mkdir "${td}"/{binutils,gcc}{,-build} "${td}/dragonfly"
3534

36-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/binutils/binutils-${binutils}.tar.bz2" -O
35+
download_binutils "${binutils}" "bz2"
3736
tar -C "${td}/binutils" --strip-components=1 -xjf "binutils-${binutils}.tar.bz2"
3837

39-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/gcc/gcc-${gcc}/gcc-${gcc}.tar.gz" -O
38+
download_gcc "${gcc}" "gz"
4039
tar -C "${td}/gcc" --strip-components=1 -xf "gcc-${gcc}.tar.gz"
4140

4241
cd gcc
@@ -50,7 +49,11 @@ main() {
5049
EOF
5150
cd ..
5251

53-
curl --retry 3 -sSfL "${url}/dfly-x86_64-${dragonfly}.iso.bz2" -O
52+
local mirrors=(
53+
"https://mirror-master.dragonflybsd.org/iso-images"
54+
"https://avalon.dragonflybsd.org/iso-images/"
55+
)
56+
download_mirrors "" "dfly-x86_64-${dragonfly}.iso.bz2" "${mirrors[@]}"
5457
bzcat "dfly-x86_64-${dragonfly}.iso.bz2" | bsdtar xf - -C "${td}/dragonfly" ./usr/include ./usr/lib ./lib
5558

5659
cd binutils-build

docker/dropbear.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ set -euo pipefail
88

99
main() {
1010
local version=2022.82
11+
local mirrors=(
12+
"https://matt.ucc.asn.au/dropbear/releases"
13+
"https://mirror.dropbear.nl/mirror"
14+
)
1115

1216
install_packages \
1317
autoconf \
@@ -24,7 +28,7 @@ main() {
2428

2529
pushd "${td}"
2630

27-
curl --retry 3 -sSfL "https://matt.ucc.asn.au/dropbear/releases/dropbear-${version}.tar.bz2" -O
31+
download_mirrors "" "dropbear-${version}.tar.bz2" "${mirrors[@]}"
2832
tar --strip-components=1 -xjf "dropbear-${version}.tar.bz2"
2933

3034
# Remove some unwanted message

docker/freebsd.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ main() {
6464

6565
mkdir "${td}"/{binutils,gcc}{,-build} "${td}/freebsd"
6666

67-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/binutils/binutils-${binutils}.tar.gz" -O
67+
download_binutils "${binutils}" "gz"
6868
tar -C "${td}/binutils" --strip-components=1 -xf "binutils-${binutils}.tar.gz"
6969

70-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/gcc/gcc-${gcc}/gcc-${gcc}.tar.gz" -O
70+
download_gcc "${gcc}" "gz"
7171
tar -C "${td}/gcc" --strip-components=1 -xf "gcc-${gcc}.tar.gz"
7272

7373
cd gcc

docker/illumos.sh

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,23 @@ main() {
3131

3232
mkdir "${td}"/{binutils,gcc}{,-build} "${td}/illumos"
3333

34-
local binutils_file="binutils-${binutils}.tar.xz"
3534
local binutils_sum="16328a906e55a3c633854beec8e9e255a639b366436470b4f6245eb0d2fde942"
36-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/binutils/${binutils_file}" -O
37-
real_sum=$(sha256sum "${binutils_file}" | cut -d ' ' -f 1)
35+
download_binutils "${binutils}" "xz"
36+
real_sum=$(sha256sum "binutils-${binutils}.tar.xz" | cut -d ' ' -f 1)
3837
if [[ "${binutils_sum}" != "${real_sum}" ]]; then
3938
echo "Error: invalid hash for binutils." >&2
4039
exit 1
4140
fi
42-
tar -C "${td}/binutils" --strip-components=1 -xJf "${binutils_file}"
41+
tar -C "${td}/binutils" --strip-components=1 -xJf "binutils-${binutils}.tar.xz"
4342

44-
local gcc_file="gcc-${gcc}.tar.xz"
4543
local gcc_sum="e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4"
46-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/gcc/gcc-${gcc}/${gcc_file}" -O
47-
real_sum=$(sha256sum "${gcc_file}" | cut -d ' ' -f 1)
44+
download_gcc "${gcc}" "xz"
45+
real_sum=$(sha256sum "gcc-${gcc}.tar.xz" | cut -d ' ' -f 1)
4846
if [[ "${gcc_sum}" != "${real_sum}" ]]; then
4947
echo "Error: invalid hash for gcc." >&2
5048
exit 1
5149
fi
52-
tar -C "${td}/gcc" --strip-components=1 -xJf "${gcc_file}"
50+
tar -C "${td}/gcc" --strip-components=1 -xJf "gcc-${gcc}.tar.xz"
5351

5452
pushd gcc
5553
sed -i -e 's/ftp:/https:/g' ./contrib/download_prerequisites

docker/lib.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
#!/usr/bin/env bash
2+
# shellcheck disable=SC2294
3+
14
purge_list=()
25

36
install_packages() {
@@ -43,3 +46,43 @@ if_ubuntu() {
4346
eval "${@}"
4447
fi
4548
}
49+
50+
GNU_MIRRORS=(
51+
"https://ftp.gnu.org/gnu/"
52+
"https://ftpmirror.gnu.org/"
53+
)
54+
55+
download_mirrors() {
56+
local relpath="${1}"
57+
shift
58+
local filename="${1}"
59+
shift
60+
61+
for mirror in "${@}"; do
62+
if curl --retry 3 -sSfL "${mirror}/${relpath}/${filename}" -O; then
63+
break
64+
fi
65+
done
66+
if [[ ! -f "${filename}" ]]; then
67+
echo "Unable to download ${filename}" >&2
68+
exit 1
69+
fi
70+
}
71+
72+
download_binutils() {
73+
local mirror
74+
local version="${1}"
75+
local ext="${2}"
76+
local filename="binutils-${version}.tar.${ext}"
77+
78+
download_mirrors "binutils" "${filename}" "${GNU_MIRRORS[@]}"
79+
}
80+
81+
download_gcc() {
82+
local mirror
83+
local version="${1}"
84+
local ext="${2}"
85+
local filename="gcc-${version}.tar.${ext}"
86+
87+
download_mirrors "gcc/gcc-${version}" "${filename}" "${GNU_MIRRORS[@]}"
88+
}

docker/netbsd.sh

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ main() {
2626

2727
mkdir "${td}"/{binutils,gcc}{,-build} "${td}/netbsd"
2828

29-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/binutils/binutils-${binutils}.tar.bz2" -O
29+
download_binutils "${binutils}" "bz2"
3030
tar -C "${td}/binutils" --strip-components=1 -xjf "binutils-${binutils}.tar.bz2"
3131

32-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/gcc/gcc-${gcc}/gcc-${gcc}.tar.xz" -O
32+
download_gcc "${gcc}" "xz"
3333
tar -C "${td}/gcc" --strip-components=1 -xJf "gcc-${gcc}.tar.xz"
3434

3535
pushd "${td}"
@@ -52,10 +52,14 @@ main() {
5252
done
5353
popd
5454

55-
curl --retry 3 -sSfL ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-9.2/amd64/binary/sets/base.tar.xz -O
55+
local mirrors=(
56+
"ftp://ftp.netbsd.org"
57+
"https://cdn.NetBSD.org"
58+
)
59+
download_mirrors "pub/NetBSD/NetBSD-9.2/amd64/binary/sets" "base.tar.xz" "${mirrors[@]}"
5660
tar -C "${td}/netbsd" -xJf base.tar.xz ./usr/include ./usr/lib ./lib
5761

58-
curl --retry 3 -sSfL ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-9.2/amd64/binary/sets/comp.tar.xz -O
62+
download_mirrors "pub/NetBSD/NetBSD-9.2/amd64/binary/sets" "comp.tar.xz" "${mirrors[@]}"
5963
tar -C "${td}/netbsd" -xJf comp.tar.xz ./usr/include ./usr/lib
6064

6165
pushd binutils-build

docker/solaris.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ main() {
3131

3232
mkdir "${td}"/{binutils,gcc}{,-build} "${td}/solaris"
3333

34-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/binutils/binutils-${binutils}.tar.xz" -O
34+
download_binutils "${binutils}" "xz"
3535
tar -C "${td}/binutils" --strip-components=1 -xJf "binutils-${binutils}.tar.xz"
3636

37-
curl --retry 3 -sSfL "https://ftp.gnu.org/gnu/gcc/gcc-${gcc}/gcc-${gcc}.tar.xz" -O
37+
download_gcc "${gcc}" "xz"
3838
tar -C "${td}/gcc" --strip-components=1 -xJf "gcc-${gcc}.tar.xz"
3939

4040
cd gcc

0 commit comments

Comments
 (0)