tazpkg diff modules/install @ rev 949
modules/get, modules/install: use "release checksum" too, as defined in packages.info field #9.
Checksum from packages.md5 used in verifying downloaded package file, while checksum in packages.info[$9] used in updates checking.
Checksum from packages.md5 used in verifying downloaded package file, while checksum in packages.info[$9] used in updates checking.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Thu Jul 20 22:40:46 2017 +0300 (2017-07-20) |
parents | dbf40347342a |
children | 4802158453e1 |
line diff
1.1 --- a/modules/install Mon Jun 05 15:51:03 2017 +0300 1.2 +++ b/modules/install Thu Jul 20 22:40:46 2017 +0300 1.3 @@ -615,20 +615,34 @@ 1.4 1.5 1.6 1.7 - # Update installed.info 1.8 + # Update installed.info ---------------------------------------------------- 1.9 SIZES=$(echo $PACKED_SIZE $UNPACKED_SIZE | sed 's|\.0||g') 1.10 + 1.11 # Remove newlines from some receipts 1.12 DEPENDS=$(echo $DEPENDS) 1.13 - PKG_SUM="$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" "$PKGS_DB/installed.$SUM" | cut -d' ' -f1)" 1.14 + 1.15 + # Calculate "release checksum": md5sum of file containing md5sums of: 1.16 + # a) all files, b) receipt, and c) description.txt. 1.17 + rsumf=$(mktemp) 1.18 + cp $INSTALLED/$PACKAGE/md5sum $rsumf 1.19 + md5sum $INSTALLED/$PACKAGE/receipt | sed 's| [^ ]*/| |' >> $rsumf 1.20 + [ -e "$INSTALLED/$PACKAGE/description.txt" ] && 1.21 + md5sum $INSTALLED/$PACKAGE/description.txt | sed 's| [^ ]*/| |' >> $rsumf 1.22 + RSUM=$(md5sum $rsumf | awk '{print $1}') 1.23 + rm $rsumf 1.24 + 1.25 ii="$PKGS_DB/installed.info" 1.26 + 1.27 # Remove old entry 1.28 sed -i "/^$PACKAGE /d" "$ii" 1.29 + 1.30 cat >> "$ii" <<EOT 1.31 -$PACKAGE $VERSION$EXTRAVERSION $CATEGORY $SHORT_DESC $WEB_SITE $TAGS $SIZES $DEPENDS $PKG_SUM 1.32 +$PACKAGE $VERSION$EXTRAVERSION $CATEGORY $SHORT_DESC $WEB_SITE $TAGS $SIZES $DEPENDS $RSUM 1.33 EOT 1.34 - #awk -F$'\t' -vp="$PACKAGE" '$1==p' "$PKGS_DB/packages.info" > $ii 1.35 + 1.36 TEMP_FILE="$(mktemp)" 1.37 sort "$ii" > "$TEMP_FILE"; mv -f "$TEMP_FILE" "$ii"; chmod a+r "$ii"; unset ii 1.38 + # -------------------------------------------------------------------------- 1.39 1.40 cd "$CUR_DIR" 1.41 footer "$(_ 'Package "%s" (%s) is installed.' "$PACKAGE" "$VERSION$EXTRAVERSION")"