summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xabuild.in23
1 files changed, 21 insertions, 2 deletions
diff --git a/abuild.in b/abuild.in
index ff18c6b..11811ba 100755
--- a/abuild.in
+++ b/abuild.in
@@ -155,7 +155,7 @@ sanitycheck() {
}
md5check() {
- local dummy f
+ local dummy f endreturnval originalparams origin file
if [ -z "$source" ]; then
return 0
fi
@@ -167,7 +167,26 @@ md5check() {
fi
fetch || return 1
msg "Checking md5sums..."
- cd "$srcdir" && echo "$md5sums" | md5sum -c
+ IFS=$'\n'
+ endreturnval=0
+ originalparams=$@
+ set -- $source
+ for src in $md5sums; do
+ origin=$1; shift
+ echo "$src" | md5sum -c
+ if [ $? -ne 0 ]; then
+ is_remote $origin || continue
+ echo "Because the remote file above failed the md5sum check it will be deleted."
+ 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
+ endreturnval=1
+ fi
+ done
+ unset IFS
+ set -- $originalparams
+ return $endreturnval
}
# verify upstream sources