Skip to content

Commit 210688f

Browse files
committed
build: Allow more retries in build_hprefix.sh
`curl` fails spuriously quite often, especially on WSL1. This commit forces it to retry up to 16 times by default, making the `HPREFIX` generation more stable.
1 parent 0275acf commit 210688f

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

build_hprefix.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ HAIKU_ADDITIONAL_PACKAGES=${HAIKU_ADDITIONAL_PACKAGES//,/ }
9292
HAIKU_SYSPACKAGES+=" $HAIKU_ADDITIONAL_SYSPACKAGES"
9393
HAIKU_PACKAGES+=" $HAIKU_ADDITIONAL_PACKAGES"
9494

95+
CURL_RETRY_COUNT=${CURL_RETRY_COUNT:-"16"}
96+
9597
mkdir -p $HPREFIX_PACKAGES
9698

9799
if pidof -q hyclone_server; then
@@ -124,7 +126,7 @@ fi
124126

125127
echo "Downloading Haiku packages"
126128
read -ra array <<<"$HAIKU_SYSPACKAGES"
127-
HAIKU_SYSPACKAGES_HREV=$(curl -Ls $HAIKU_HPKG_BASE_URL | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')
129+
HAIKU_SYSPACKAGES_HREV=$(curl --retry $CURL_RETRY_COUNT --retry-all-errors -Ls $HAIKU_HPKG_BASE_URL | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')
128130
for package in "${array[@]}"; do
129131
# Check if package already exists
130132
if [ "$HPKG_FORCE" == "0" ] && [ -f "$HPREFIX_PACKAGES/$package-$HAIKU_SYSPACKAGES_HREV-1-$HAIKU_ARCH.hpkg" ]; then
@@ -135,14 +137,17 @@ for package in "${array[@]}"; do
135137
rm -fv $HPREFIX_PACKAGES/$package-*-$HAIKU_ARCH.hpkg
136138
fi
137139
echo "Downloading $package-$HAIKU_SYSPACKAGES_HREV-1-$HAIKU_ARCH.hpkg"
138-
curl -Lo "$HPREFIX_PACKAGES/$package-$HAIKU_SYSPACKAGES_HREV-1-$HAIKU_ARCH.hpkg" "$HAIKU_HPKG_BASE_URL/packages/$package-$HAIKU_SYSPACKAGES_HREV-1-$HAIKU_ARCH.hpkg"
140+
curl --retry $CURL_RETRY_COUNT --retry-all-errors \
141+
-Lo "$HPREFIX_PACKAGES/$package-$HAIKU_SYSPACKAGES_HREV-1-$HAIKU_ARCH.hpkg" \
142+
"$HAIKU_HPKG_BASE_URL/packages/$package-$HAIKU_SYSPACKAGES_HREV-1-$HAIKU_ARCH.hpkg"
139143
fi
140144
done
141145
read -ra array <<<"$HAIKU_PACKAGES"
142146
for package in "${array[@]}"; do
143147
# API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
144148
# The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
145-
hpkgDownloadUrl="$(curl -Ls --request POST --data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$HAIKU_ARCH'","versionType":"LATEST","naturalLanguageCode":"en"}' \
149+
hpkgDownloadUrl="$(curl --retry $CURL_RETRY_COUNT --retry-all-errors -Ls --request POST \
150+
--data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$HAIKU_ARCH'","versionType":"LATEST","naturalLanguageCode":"en"}' \
146151
--header 'Content-Type:application/json' "$HAIKU_DEPOT_BASE_URL" | sed -n 's/^.*hpkgDownloadURL":"\([^"]*\)".*$/\1/p')"
147152
hpkgVersion="$(echo "$hpkgDownloadUrl" | sed -n 's/^.*\/[^\/]*-\([^-]*\-[^-]*\)-[^-]*\.hpkg$/\1/p')"
148153
if [ "$HPKG_FORCE" == "0" ] && [ -f "$HPREFIX_PACKAGES/$package-$hpkgVersion-$HAIKU_ARCH.hpkg" ]; then
@@ -153,7 +158,8 @@ for package in "${array[@]}"; do
153158
rm -fv $HPREFIX_PACKAGES/$package-*-$HAIKU_ARCH.hpkg
154159
fi
155160
echo "Downloading $package-$hpkgVersion-$HAIKU_ARCH.hpkg"
156-
curl -Lo "$HPREFIX_PACKAGES/$package-$hpkgVersion-$HAIKU_ARCH.hpkg" "$hpkgDownloadUrl"
161+
curl --retry $CURL_RETRY_COUNT --retry-all-errors \
162+
-Lo "$HPREFIX_PACKAGES/$package-$hpkgVersion-$HAIKU_ARCH.hpkg" "$hpkgDownloadUrl"
157163
fi
158164
done
159165

0 commit comments

Comments
 (0)