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.
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")"