jhalfs fails when testing the md5sum

John Kelly jakelly at shtc.net
Sun Sep 25 16:41:37 PDT 2005


jhalfs fails when testing the md5sum after a download.  Here is a
patch to fix that problem.


--- jhalfs.orig	2005-09-25 17:17:15.000000000 -0400
+++ jhalfs	2005-09-25 19:12:12.000000000 -0400
@@ -189,9 +189,12 @@
   DIR=`echo $1 | sed 's at -doc@@'`
 
   # Find the md5 sum for this package.
-  if [ $2 != MD5SUMS ] ; then MD5=`grep "  $2" MD5SUMS` ; fi
+  if [ $2 != MD5SUMS ] ; then
+    MD5=$(grep " $2" MD5SUMS | sed -r -e 's/^[[:blank:]]+//;s/[[:blank:]]+$//;s/[[:blank:]]+/ /g')
+    md5_file=${MD5#* } ; md5_chksum=${MD5% *}
+  fi
 
-  if [ ! -f $2 ] ; then
+  if [ ! -f $2 -o $2 == MD5SUMS ] ; then
     case $DL in
       wget )
         wget $HTTP/$DIR/$2
@@ -203,7 +206,7 @@
         echo "$DL not supported at this time."
         ;;
     esac
-  elif ! echo "$MD5" | md5sum -c - >/dev/null 2>/dev/null ; then
+  elif [ "$md5_chksum" != "$(md5sum $md5_file | sed -r -e 's/^[[:blank:]]+//;s/[[:blank:]]+$//;s/[[:blank:]]+/\t/g' | cut -f 1)" ] ; then
     case $DL in
       wget )
         wget -c $HTTP/$DIR/$2
@@ -216,8 +219,11 @@
         ;;
     esac
   fi
-  if [ $2 != MD5SUMS ] && ! echo "$MD5" | md5sum -c - ; then
-    exit 1
+  if [ $2 != MD5SUMS ] ; then
+     if [ "$md5_chksum" != "$(md5sum $md5_file | sed -r -e 's/^[[:blank:]]+//;s/[[:blank:]]+$//;s/[[:blank:]]+/\t/g' | cut -f 1)" ] ; then
+       echo "$2 md5 checksum does not match $md5_chksum"
+       exit 1
+     fi
   fi
 }
 



More information about the alfs-discuss mailing list