Bug#614315: Patch to change from MD5 to SHA1
tags 614315 +patch
thanks
Hi,
Attached is a patch which updates the 'functions' shell file to use SHA1
instead of MD5. It also updates the perl chunk at the bottom, but obviously
does not update the version of pkginfo available in the bootstrap-base udeb.
This needs updating also, otherwise new installs will fail.
Regards,
Daniel.
--
Daniel Silverstone http://www.digital-scurf.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69
--- functions-1.0.27 2011-02-21 12:30:38.680288222 +0000
+++ functions 2011-02-21 12:18:50.597829630 +0000
@@ -228,13 +228,13 @@
export DOWNLOAD_DEBS
}
-check_md5 () {
- # args: dest md5 size
- local expmd5="$2"
+check_sha1 () {
+ # args: dest sha1 size
+ local expsha1="$2"
local expsize="$3"
- relmd5=`md5sum < "$1" | sed 's/ .*$//'`
+ relsha1=`sha1sum < "$1" | sed 's/ .*$//'`
relsize=`wc -c < "$1"`
- if [ "$expsize" -ne "$relsize" ] || [ "$expmd5" != "$relmd5" ]; then
+ if [ "$expsize" -ne "$relsize" ] || [ "$expsha1" != "$relsha1" ]; then
return 1
fi
return 0
@@ -242,7 +242,7 @@
get () {
# args: from dest 'nocache'
- # args: from dest [md5sum size] [alt {md5sum size type}]
+ # args: from dest [sha1sum size] [alt {sha1sum size type}]
local displayname
if [ "${2%.deb}" != "$2" ]; then
displayname="$(echo "$2" | sed 's,^.*/,,;s,_.*$,,')"
@@ -257,7 +257,7 @@
rm -f "$2"
else
info VALIDATING "Validating %s" "$displayname"
- if check_md5 "$2" "$3" "$4"; then
+ if check_sha1 "$2" "$3" "$4"; then
return 0
else
rm -f "$2"
@@ -278,7 +278,7 @@
local order=3
fi
for a in $order; do
- local md5="$(eval echo \${$a})"
+ local sha1="$(eval echo \${$a})"
local siz="$(eval echo \${$(( $a+1 ))})"
local typ="$(eval echo \${$(( $a+2 ))})"
local from
@@ -300,13 +300,13 @@
info RETRIEVING "Retrieving %s" "$displayname"
if ! just_get "$from" "$dest2"; then continue; fi
- if [ "$md5" != "" ]; then
+ if [ "$sha1" != "" ]; then
info VALIDATING "Validating %s" "$displayname"
- if check_md5 "$dest2" "$md5" "$siz"; then
- md5=""
+ if check_sha1 "$dest2" "$sha1" "$siz"; then
+ sha1=""
fi
fi
- if [ -z "$md5" ]; then
+ if [ -z "$sha1" ]; then
[ "$dest2" = "$dest" ] || mv "$dest2" "$dest"
case "$typ" in
gz) gunzip "$dest" ;;
@@ -442,10 +442,10 @@
################################################################## download
-get_release_md5 () {
+get_release_sha1 () {
local reldest="$1"
local path="$2"
- sed -n '/^[Mm][Dd]5[Ss][Uu][Mm]/,/^[^ ]/p' < "$reldest" | \
+ sed -n '/^[Ss][Hh][Aa]1:$/,/^[^ ]/p' < "$reldest" | \
while read a b c; do
if [ "$c" = "$path" ]; then echo "$a $b"; fi
done | head -n 1
@@ -504,9 +504,9 @@
local totalpkgs=0
for c in $COMPONENTS; do
local subpath="$c/binary-$ARCH/Packages"
- local bz2md="`get_release_md5 "$reldest" "$subpath.bz2"`"
- local gzmd="`get_release_md5 "$reldest" "$subpath.gz"`"
- local normmd="`get_release_md5 "$reldest" "$subpath"`"
+ local bz2md="`get_release_sha1 "$reldest" "$subpath.bz2"`"
+ local gzmd="`get_release_sha1 "$reldest" "$subpath.gz"`"
+ local normmd="`get_release_sha1 "$reldest" "$subpath"`"
local md=
if [ "$normmd" != "" ]; then
md="$normmd"
@@ -529,9 +529,9 @@
for c in $COMPONENTS; do
local subpath="$c/binary-$ARCH/Packages"
local path="dists/$SUITE/$subpath"
- local bz2md="`get_release_md5 "$reldest" "$subpath.bz2"`"
- local gzmd="`get_release_md5 "$reldest" "$subpath.gz"`"
- local normmd="`get_release_md5 "$reldest" "$subpath"`"
+ local bz2md="`get_release_sha1 "$reldest" "$subpath.bz2"`"
+ local gzmd="`get_release_sha1 "$reldest" "$subpath.gz"`"
+ local normmd="`get_release_sha1 "$reldest" "$subpath"`"
local ext=
local md=
if [ "$normmd" != "" ]; then
@@ -588,13 +588,13 @@
$PKGDETAILS PKGS "$m" "$pkgdest" "$@" | (
leftover=""
- while read p ver arc mdup fil md5 size; do
+ while read p ver arc mdup fil sha1 size; do
if [ "$ver" = "-" ]; then
leftover="$leftover $p"
else
progress_next "$(($dloaddebs + $size))"
local debdest="$($DLDEST deb "$p" "$ver" "$arc" "$m" "$fil")"
- if get "$m/$fil" "$TARGET/$debdest" "$md5" "$size"; then
+ if get "$m/$fil" "$TARGET/$debdest" "$sha1" "$size"; then
dloaddebs="$(($dloaddebs + $size))"
echo >>$TARGET/debootstrap/debpaths "$p $debdest"
else
@@ -704,9 +704,9 @@
continue
fi
size="${details##* }"; details="${details% *}"
- md5="${details##* }"; details="${details% *}"
+ sha1="${details##* }"; details="${details% *}"
local debdest="$($DLDEST deb $details)"
- if get "$m/${details##* }" "$TARGET/$debdest" "$md5" "$size"; then
+ if get "$m/${details##* }" "$TARGET/$debdest" "$sha1" "$size"; then
echo >>$TARGET/debootstrap/debpaths "$p $debdest"
details="done"
break
@@ -1027,14 +1027,14 @@
$ver = $v if ($f eq "version:");
$arc = $v if ($f eq "architecture:");
$fil = $v if ($f eq "filename:");
- $md5 = $v if ($f eq "md5sum:");
+ $sha1 = $v if ($f eq "sha1:");
$siz = $v if ($f eq "size:");
$val = $v if ($f eq $field);
} elsif (/^$/) {
if (defined $val && defined $fields{$val}) {
$cnt++;
printf "%s %s %s %s %s %s %s\n",
- $pkg, $ver, $arc, $mirror, $fil, $md5, $siz;
+ $pkg, $ver, $arc, $mirror, $fil, $sha1, $siz;
if ($unique) {
delete $fields{$val};
last if (--$cnt <= 0);
Reply to: