summaryrefslogtreecommitdiffstats
path: root/abuild.in
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2016-07-08 13:44:31 +0300
committerTimo Teräs <timo.teras@iki.fi>2016-07-08 13:44:31 +0300
commit90899669c2da9cce4b54851c45fb482e6950a876 (patch)
treec279c5a7a208f13f8a9bb8b90d76d56467cf55ef /abuild.in
parent580dd46c588ef71bc852d2b9a5bb4426a2c47665 (diff)
downloadabuild-90899669c2da9cce4b54851c45fb482e6950a876.tar.bz2
abuild-90899669c2da9cce4b54851c45fb482e6950a876.tar.xz
abuild: rename distfile copy when checksum does not match
The previous deletion of file did not work properly at all. Fix this instead to rename the file, so we keep the previous download. This allows builders to redownload upstream file if the checksum has been changed in aports.
Diffstat (limited to 'abuild.in')
-rw-r--r--abuild.in11
1 files changed, 7 insertions, 4 deletions
diff --git a/abuild.in b/abuild.in
index 49e2630..d4614d1 100644
--- a/abuild.in
+++ b/abuild.in
@@ -247,11 +247,14 @@ sumcheck() {
if [ $? -ne 0 ]; then
endreturnval=1
is_remote $origin || continue
- echo "Because the remote file above failed the ${algo}sum check it will be deleted."
+
+ local csum="${src:0:8}"
+ local file="$SRCDEST/$(filename_from_uri $origin)"
+
+ echo "Because the remote file above failed the ${algo}sum check it will be renamed."
echo "Rebuilding will cause it to re-download which in some cases may fix the problem."
- file=`echo "$src" | sed 's/.*[ \t\n]\(.*\)/\1/'`
- echo "Deleting: $file"
- rm $file
+ echo "Renaming: ${file##*/} to ${file##*/}.$csum"
+ mv "$file" "$file.$csum"
fi
done
unset IFS