summaryrefslogtreecommitdiffstats
path: root/support
diff options
context:
space:
mode:
authorGaël PORTAY <gael.portay@savoirfairelinux.com>2017-11-05 19:46:50 -0500
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>2018-04-01 15:02:53 +0200
commitcf9bf7d28b8a6c55e639b17c90f35ea11cae88ac (patch)
tree480bcddd18a8da2d24e2d6516e2c72bd34a727f6 /support
parent29b7cc88f401dcc69a085be5af067851f896da58 (diff)
downloadbuildroot-cf9bf7d28b8a6c55e639b17c90f35ea11cae88ac.tar.gz
buildroot-cf9bf7d28b8a6c55e639b17c90f35ea11cae88ac.zip
support/download: keep files downloaded without hash
In the situation where the hash is missing from the hash file, the dl-wrapper downloads the file again and again until the developer specifies the hash to complete the download step. To avoid this situation, the freshly-downloaded file is not removed anymore after a successful download. After this change, the behaviour is as follows: - Hash file doesn't exist, or file is in BR_NO_CHECK_HASH_FOR => always succeeds. - Hash file exists, but file is not present => file is NOT removed, build is terminated immediately (i.e. secondary site is not tried). - Hash file exists, file is present, but hash mismatch => file is removed, secondary site is tried. => If all primary/secondary site downloads or hash checks fail, the build is terminated. Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com> [Arnout: extend commit log] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Diffstat (limited to 'support')
-rwxr-xr-xsupport/download/dl-wrapper17
1 files changed, 13 insertions, 4 deletions
diff --git a/support/download/dl-wrapper b/support/download/dl-wrapper
index f944b71db5..b018819833 100755
--- a/support/download/dl-wrapper
+++ b/support/download/dl-wrapper
@@ -21,7 +21,7 @@ set -e
main() {
local OPT OPTARG
- local backend output hfile recurse quiet
+ local backend output hfile recurse quiet rc
# Parse our options; anything after '--' is for the backend
while getopts :hb:o:H:rq OPT; do
@@ -93,9 +93,16 @@ main() {
# Check if the downloaded file is sane, and matches the stored hashes
# for that file
- if ! support/download/check-hash ${quiet} "${hfile}" "${tmpf}" "${output##*/}"; then
- rm -rf "${tmpd}"
- exit 1
+ if support/download/check-hash ${quiet} "${hfile}" "${tmpf}" "${output##*/}"; then
+ rc=0
+ else
+ if [ ${?} -ne 3 ]; then
+ rm -rf "${tmpd}"
+ exit 1
+ fi
+
+ # the hash file exists and there was no hash to check the file against
+ rc=1
fi
# tmp_output is in the same directory as the final output, so we can
@@ -141,6 +148,8 @@ main() {
rm -f "${tmp_output}"
exit 1
fi
+
+ return ${rc}
}
help() {
OpenPOWER on IntegriCloud