diff options
-rwxr-xr-x | bin/reproducible_lede.sh | 66 | ||||
-rw-r--r-- | bin/reproducible_openwrt_common.sh | 4 |
2 files changed, 37 insertions, 33 deletions
diff --git a/bin/reproducible_lede.sh b/bin/reproducible_lede.sh index 176c58aa..8705277b 100755 --- a/bin/reproducible_lede.sh +++ b/bin/reproducible_lede.sh @@ -100,40 +100,44 @@ DBD_BAD_PKGS_HTML=$(mktemp --tmpdir=$TMPDIR) GOOD_IMAGES=0 ALL_IMAGES=0 SIZE="" -cd $TMPDIR/b1 +cd $TMPDIR/b1/targets tree . -for i in * ; do - cd $i - - # search images in both paths to find non-existing ones - IMGS1=$(find * -type f -name "*.bin" -o -name "*.squashfs" | sort -u ) - pushd $TMPDIR/b2/$i - IMGS2=$(find * -type f -name "*.bin" -o -name "*.squashfs" | sort -u ) - popd - - echo " <table><tr><th>Images for <code>$i</code></th></tr>" >> $DBD_HTML - for j in $(printf "$IMGS1\n$IMGS2" | sort -u ) ; do - let ALL_IMAGES+=1 - if [ ! -f $TMPDIR/b1/$i/$j -o ! -f $TMPDIR/b2/$i/$j ] ; then - echo " <tr><td><img src=\"/userContent/static/weather-storm.png\" alt=\"ftbfs icon\" /> $j (${SIZE}) failed to build.</td></tr>" >> $DBD_HTML - rm -f $BASE/lede/dbd/$i/$j.html # cleanup from previous (unreproducible) tests - if needed - continue - fi - call_diffoscope $i $j - get_filesize $j - if [ -f $TMPDIR/$i/$j.html ] ; then - mkdir -p $BASE/lede/dbd/$i - mv $TMPDIR/$i/$j.html $BASE/lede/dbd/$i/$j.html - echo " <tr><td><a href=\"dbd/$i/$j.html\"><img src=\"/userContent/static/weather-showers-scattered.png\" alt=\"unreproducible icon\" /> $j</a> (${SIZE}) is unreproducible.</td></tr>" >> $DBD_HTML - else - SHASUM=$(sha256sum $j|cut -d " " -f1) - echo " <tr><td><img src=\"/userContent/static/weather-clear.png\" alt=\"reproducible icon\" /> $j ($SHASUM, $SIZE) is reproducible.</td></tr>" >> $DBD_HTML - let GOOD_IMAGES+=1 - rm -f $BASE/lede/dbd/$i/$j.html # cleanup from previous (unreproducible) tests - if needed - fi +for target in * ; do + cd $target + for subtarget in * ; do + cd $subtarget + + # search images in both paths to find non-existing ones + IMGS1=$(find * -type f -name "*.bin" -o -name "*.squashfs" | sort -u ) + pushd $TMPDIR/b2/targets/$target/$subtarget + IMGS2=$(find * -type f -name "*.bin" -o -name "*.squashfs" | sort -u ) + popd + + echo " <table><tr><th>Images for <code>$target/$subtarget</code></th></tr>" >> $DBD_HTML + for image in $(printf "$IMGS1\n$IMGS2" | sort -u ) ; do + let ALL_IMAGES+=1 + if [ ! -f $TMPDIR/b1/$target/$subtarget/$image -o ! -f $TMPDIR/b2/$target/$subtarget/$image ] ; then + echo " <tr><td><img src=\"/userContent/static/weather-storm.png\" alt=\"ftbfs icon\" /> $image (${SIZE}) failed to build.</td></tr>" >> $DBD_HTML + rm -f $BASE/lede/dbd/$target/$subtarget/$image.html # cleanup from previous (unreproducible) tests - if needed + continue + fi + call_diffoscope $target/$subtarget $image + get_filesize $image + if [ -f $TMPDIR/$target/$subtarget/$image.html ] ; then + mkdir -p $BASE/lede/dbd/$target/$subtarget + mv $TMPDIR/$target/$subtarget/$image.html $BASE/lede/dbd/$target/$subtarget/$image.html + echo " <tr><td><a href=\"dbd/$target/$subtarget/$image.html\"><img src=\"/userContent/static/weather-showers-scattered.png\" alt=\"unreproducible icon\" /> $image</a> (${SIZE}) is unreproducible.</td></tr>" >> $DBD_HTML + else + SHASUM=$(sha256sum $image|cut -d " " -f1) + echo " <tr><td><img src=\"/userContent/static/weather-clear.png\" alt=\"reproducible icon\" /> $image ($SHASUM, $SIZE) is reproducible.</td></tr>" >> $DBD_HTML + let GOOD_IMAGES+=1 + rm -f $BASE/lede/dbd/$target/$subtarget/$image.html # cleanup from previous (unreproducible) tests - if needed + fi + done + cd .. + echo " </table>" >> $DBD_HTML done cd .. - echo " </table>" >> $DBD_HTML done GOOD_PERCENT_IMAGES=$(echo "scale=1 ; ($GOOD_IMAGES*100/$ALL_IMAGES)" | bc) # run diffoscope on the packages diff --git a/bin/reproducible_openwrt_common.sh b/bin/reproducible_openwrt_common.sh index a678f6a7..2e774b4f 100644 --- a/bin/reproducible_openwrt_common.sh +++ b/bin/reproducible_openwrt_common.sh @@ -41,9 +41,9 @@ save_lede_results() { pushd $subtarget || continue # save firmware images - mkdir -p $TMPDIR/$RUN/$target/$subtarget/ + mkdir -p $TMPDIR/$RUN/targets/$target/$subtarget/ for image in $(find * -name "*.bin" -o -name "*.squashfs") ; do - cp -p $image $TMPDIR/$RUN/$target/$subtarget/ + cp -p $image $TMPDIR/$RUN/targets/$target/$subtarget/ done # save subtarget specific packages |