@@ -24,7 +24,7 @@ RECIPES_PATH="$ROOT_PATH/recipes"
24
24
BUILD_PATH=" $ROOT_PATH /build"
25
25
LIBS_PATH=" $ROOT_PATH /build/libs"
26
26
JAVACLASS_PATH=" $ROOT_PATH /build/java"
27
- PACKAGES_PATH=" $ROOT_PATH /.packages"
27
+ PACKAGES_PATH=" ${PACKAGES_PATH :- $ ROOT_PATH/ .packages} "
28
28
SRC_PATH=" $ROOT_PATH /src"
29
29
JNI_PATH=" $SRC_PATH /jni"
30
30
DIST_PATH=" $ROOT_PATH /dist/default"
@@ -57,8 +57,10 @@ if [ "X$WGET" == "X" ]; then
57
57
else
58
58
WGET=" $WGET -L -O -o"
59
59
fi
60
+ WHEAD=" curl -L -I"
60
61
else
61
62
WGET=" $WGET -O"
63
+ WHEAD=" wget --spider -q -S"
62
64
fi
63
65
64
66
case $OSTYPE in
@@ -504,12 +506,17 @@ function run_get_packages() {
504
506
fi
505
507
506
508
filename=$( basename $url )
509
+ marker_filename=" .mark-$filename "
507
510
do_download=1
508
511
509
- # check if the file is already present
510
512
cd $PACKAGES_PATH
513
+
514
+ # check if the file is already present
511
515
if [ -f $filename ]; then
512
- if [ -n " $md5 " ]; then
516
+ # if the marker has not been set, it might be cause of a invalid download.
517
+ if [ ! -f $marker_filename ]; then
518
+ rm $filename
519
+ elif [ -n " $md5 " ]; then
513
520
# check if the md5 is correct
514
521
current_md5=$( $MD5SUM $filename | cut -d\ -f1)
515
522
if [ " X$current_md5 " == " X$md5 " ]; then
@@ -525,10 +532,31 @@ function run_get_packages() {
525
532
fi
526
533
fi
527
534
535
+ # check if the file HEAD in case of, only if there is no MD5 to check.
536
+ check_headers=0
537
+ if [ -z " $md5 " ]; then
538
+ if [ " X$DO_CLEAN_BUILD " == " X1" ]; then
539
+ check_headers=1
540
+ elif [ ! -f $filename ]; then
541
+ check_headers=1
542
+ fi
543
+ fi
544
+
545
+ if [ " X$check_headers " == " X1" ]; then
546
+ debug " Checking if $url changed"
547
+ $WHEAD $url & > .headers-$filename
548
+ $PYTHON " $ROOT_PATH /tools/check_headers.py" .headers-$filename .sig-$filename
549
+ if [ $? -ne 0 ]; then
550
+ do_download=1
551
+ fi
552
+ fi
553
+
528
554
# download if needed
529
555
if [ $do_download -eq 1 ]; then
530
556
info " Downloading $url "
557
+ try rm -f $marker_filename
531
558
try $WGET $filename $url
559
+ touch $marker_filename
532
560
else
533
561
debug " Module $module already downloaded"
534
562
fi
0 commit comments