Package: apt-zip Version: 0.19 Severity: wishlist Tags: patch Hello, I'm attaching a patch to allow wget method for multi-checksums: there are some repositories that are not using SHA256 checksums, and the script currently recognizes only that type; with this patch are enabled: sha256, sha1, md5sum.
Tomorrow I'll test at work with a list with sha256 and md5sum, but preliminary tests confirm it works :) Cheers, Sandro -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.22-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages apt-zip depends on: ii apt 0.7.14+b1 Advanced front-end for dpkg apt-zip recommends no packages. apt-zip suggests no packages. -- no debconf information
diff -Nru apt-zip-0.18/apt-zip-list apt-zip-0.19/apt-zip-list --- apt-zip-0.18/apt-zip-list 2008-02-01 07:57:01.000000000 +0100 +++ apt-zip-0.19/apt-zip-list 2008-08-25 23:45:36.000000000 +0200 @@ -35,7 +35,7 @@ [ -n "$PACKAGES" ] && apt-get ${APTGETEXTRAOPTS} -qq --print-uris install $PACKAGES > "$TMP" [ -n "$APTGETACTION" ] && apt-get ${APTGETEXTRAOPTS} -qq --print-uris ${APTGETACTION} >> "$TMP" -grep $GREP < "$TMP" | tr -d "'" | sed 's/SHA256://' | sort -u > "$TEMP" +grep $GREP < "$TMP" | tr -d "'" | sort -u > "$TEMP" if [ $? != 0 ] then error "apt-get failed" diff -Nru apt-zip-0.18/debian/changelog apt-zip-0.19/debian/changelog diff -Nru apt-zip-0.18/methods/wget apt-zip-0.19/methods/wget --- apt-zip-0.18/methods/wget 2008-02-01 07:54:37.000000000 +0100 +++ apt-zip-0.19/methods/wget 2008-08-26 00:02:48.000000000 +0200 @@ -33,8 +33,17 @@ [ ! -r "\$1" ] && return 1 [ "\$2" = "0" ] && return \$3 [ "\$2" = "" ] && return \$3 - [ "\`type sha256sum\`" ] && - if [ "\`sha256sum \$1 | cut -d' ' -f1\`" = \$2 ] + type=\$(echo \$2 | cut -d":" -f1) + checksum=\$(echo \$2 | cut -d":" -f2) + case "\$type" in + SHA256) cmd=sha256sum;; + SHA1 ) cmd=sha1sum;; + MD5Sum) cmd=md5sum;; + * ) err \$1 "(\$type) wrong checksum type"; return 1;; + esac + + [ "\`type \$cmd\`" ] && + if [ "\`\$cmd \$1 | cut -d' ' -f1\`" = \$checksum ] then return 0 else err \$1 "wrong checksum"; return 1 fi