cookutils diff cook @ rev 945

cook, modules/pkgdb: calculate package's "release checksum"; modules/deps: add more xorg-* rules, exclude "fonts.dir" and "fonts.scale" from packaging (should be re-created after package install); lighttpd/index.cgi: exclude "fonts.dir" and "fonts.scale".
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Jul 14 15:58:38 2017 +0300 (2017-07-14)
parents 81f33cdb5a66
children 1b74677e163f
line diff
     1.1 --- a/cook	Thu Jun 22 20:18:08 2017 +0300
     1.2 +++ b/cook	Fri Jul 14 15:58:38 2017 +0300
     1.3 @@ -1346,6 +1346,7 @@
     1.4  					/\/share\/man\//d; /\/share\/doc\//d; /\/share\/gtk-doc\//d; /\/share\/info\//d;
     1.5  					/\/share\/devhelp\//d; /\/share\/locale\//d;
     1.6  					/\/share\/bash-completion\//d; /\/lib\/systemd\//d;
     1.7 +					/\/fonts\.scale$/d; /\/fonts\.dir$/d;
     1.8  					' $filelist
     1.9  				;;
    1.10  			@dev)
    1.11 @@ -1419,13 +1420,33 @@
    1.12  update_packages_db() {
    1.13  	# packages.info (unsorted, located near to packages)
    1.14  	local pi="$PKGS/packages.info"
    1.15 -	sed -i "/^$PACKAGE\t/d" $pi
    1.16  	unset_receipt; . $pack/receipt
    1.17  	SIZES=$(echo $PACKED_SIZE $UNPACKED_SIZE | sed 's|\.0||g')
    1.18 +
    1.19  	DEPENDS=$(echo $DEPENDS) # remove newlines, tabs and multiple spaces from variable
    1.20 -	MD5="$(md5sum "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" | awk '{print $1}')"
    1.21 +
    1.22 +	# Calculate release checksum: usually it not change on "just recook".
    1.23 +	# Release checksum is md5sum of file contains md5sums of all files, receipt and description.txt.
    1.24 +	# Md5sum of the package file will change every time because of embedded timestamps;
    1.25 +	# release checksum based only on files content, and will change only when files change.
    1.26 +	rsumf=$(mktemp)
    1.27 +	cp $pack/md5sum $rsumf
    1.28 +	md5sum $pack/receipt | sed 's| [^ ]*/| |' >> $rsumf
    1.29 +	[ -e "$pack/description.txt" ] && md5sum $pack/description.txt | sed 's| [^ ]*/| |' >> $rsumf
    1.30 +	rsum=$(md5sum $rsumf | awk '{print $1}')
    1.31 +	rm $rsumf
    1.32 +#	MD5="$(md5sum "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" | awk '{print $1}')"
    1.33 +	rsumold=$(awk -F$'\t' -vpkg="$PACKAGE" '{if ($1 == pkg) { print $9; exit; }}' $pi)
    1.34 +
    1.35 +	if [ "$rsum" == "$rsumold" ]; then
    1.36 +		_ 'The release checksum has not changed.\n'
    1.37 +	else
    1.38 +		_ 'The release checksum has changed.\n'
    1.39 +	fi
    1.40 +
    1.41 +	sed -i "/^$PACKAGE\t/d" $pi		# remove old entry
    1.42  	cat >> $pi <<EOT
    1.43 -$PACKAGE	$VERSION$EXTRAVERSION	$CATEGORY	$SHORT_DESC	$WEB_SITE	$TAGS	$SIZES	$DEPENDS	$MD5	$PROVIDE
    1.44 +$PACKAGE	$VERSION$EXTRAVERSION	$CATEGORY	$SHORT_DESC	$WEB_SITE	$TAGS	$SIZES	$DEPENDS	$rsum	$PROVIDE
    1.45  EOT
    1.46  
    1.47  	# files.list (uncompressed, unsorted, located in $cache)