cookutils 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 6e892f321f46
children cf98be8bc904
files cook lighttpd/index.cgi modules/deps modules/pkgdb
line diff
     1.1 --- a/cook	Mon Jun 26 13:57:14 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)
     2.1 --- a/lighttpd/index.cgi	Mon Jun 26 13:57:14 2017 +0300
     2.2 +++ b/lighttpd/index.cgi	Fri Jul 14 15:58:38 2017 +0300
     2.3 @@ -1208,7 +1208,8 @@
     2.4  				printf("<a class=\"c00\" href=\"%s\">%s</a>\n", i $0, $0);
     2.5  			}
     2.6  			/\/perllocal.pod$/ || /\/\.packlist$/ || /\/share\/bash-completion\// ||
     2.7 -				/\/lib\/systemd\// || /\.pyc$/ || /\.pyo$/ { tag("---", 0); next }
     2.8 +				/\/lib\/systemd\// || /\.pyc$/ || /\.pyo$/ || /\/fonts\.scale$/ || /\/fonts\.dir$/ {
     2.9 +				tag("---", 0); next }
    2.10  			/\.pod$/  { tag("pod", 5); next }
    2.11  			/\/share\/man\// { tag("man", 5); next }
    2.12  			/\/share\/doc\// || /\/share\/gtk-doc\// || /\/share\/info\// ||
     3.1 --- a/modules/deps	Mon Jun 26 13:57:14 2017 +0300
     3.2 +++ b/modules/deps	Fri Jul 14 15:58:38 2017 +0300
     3.3 @@ -135,6 +135,21 @@
     3.4  				s("polkit",       "polkit-pam");
     3.5  				s("libgudev",     "eudev"); # also systemd
     3.6  				s("xz-dev",       "liblzma-dev");
     3.7 +				s("xorg-libxcb",  "libxcb");
     3.8 +				s("xorg-xcb-util-image",      "xcb-util-image");
     3.9 +				s("xorg-xcb-util-keysyms",    "xcb-util-keysyms");
    3.10 +				s("xorg-xcb-util-renderutil", "xcb-util-renderutil");
    3.11 +				s("xorg-xcb-util-wm",         "xcb-util-wm");
    3.12 +				s("xorg-xcb-util",            "xcb-util");
    3.13 +				s("xorg-libxcb",              "libxcb");
    3.14 +				s("xorg-libxcb-dev",          "libxcb-dev");
    3.15 +				s("xorg-pixman",              "pixman");
    3.16 +				s("xorg-pixman-dev",          "pixman-dev");
    3.17 +				s("xorg-xcb-util-cursor",     "xcb-util-cursor");
    3.18 +				s("xorg-xcb-util-dev",        "xcb-util-dev");
    3.19 +				s("xorg-xcb-util-image-dev",  "xcb-util-image-dev");
    3.20 +				s("xorg-xcb-util-renderutil-dev", "xcb-util-renderutil-dev");
    3.21 +				s("eudev-dev", "udev-dev");
    3.22  
    3.23  				if (! index($0, "glibc-base") &&
    3.24  					! index($0, "gcc-lib-base") &&
     4.1 --- a/modules/pkgdb	Mon Jun 26 13:57:14 2017 +0300
     4.2 +++ b/modules/pkgdb	Fri Jul 14 15:58:38 2017 +0300
     4.3 @@ -92,13 +92,15 @@
     4.4  
     4.5  _ 'Creating lists from "%s"' "$WOK" | dblog
     4.6  cd $WOK
     4.7 +rsumf=$(mktemp)
     4.8  for i in *; do
     4.9  	[ -d "$WOK/$i/taz" ] || continue
    4.10  
    4.11  	for j in $(ls $WOK/$i/taz | sort); do
    4.12 -		[ -f "$WOK/$i/taz/$j/receipt" ] || continue
    4.13 +		pack="$i/taz/$j"
    4.14 +		[ -f "$WOK/$pack/receipt" ] || continue
    4.15  		unset_receipt
    4.16 -		. $i/taz/$j/receipt
    4.17 +		. $pack/receipt
    4.18  
    4.19  		if [ -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" -o \
    4.20  		     -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg" ]; then
    4.21 @@ -122,9 +124,15 @@
    4.22  			# and will substitute them all
    4.23  			SIZES=$(echo $PACKED_SIZE $UNPACKED_SIZE | sed 's|\.0||g')
    4.24  			DEPENDS=$(echo $DEPENDS) # remove newlines from some receipts
    4.25 -			MD5="$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" $PKGS/packages.md5 | awk '{print $1}')"
    4.26 +
    4.27 +			#MD5="$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" $PKGS/packages.md5 | awk '{print $1}')"
    4.28 +			cp $pack/md5sum $rsumf
    4.29 +			md5sum $pack/receipt | sed 's| [^ ]*/| |' >> $rsumf
    4.30 +			[ -e "$pack/description.txt" ] && md5sum $pack/description.txt | sed 's| [^ ]*/| |' >> $rsumf
    4.31 +			rsum=$(md5sum $rsumf | awk '{print $1}')
    4.32 +
    4.33  			cat >> $PKGS/packages.info <<EOT
    4.34 -$PACKAGE	$VERSION$EXTRAVERSION	$CATEGORY	$SHORT_DESC	$WEB_SITE	$TAGS	$SIZES	$DEPENDS	$MD5	$PROVIDE
    4.35 +$PACKAGE	$VERSION$EXTRAVERSION	$CATEGORY	$SHORT_DESC	$WEB_SITE	$TAGS	$SIZES	$DEPENDS	$rsum	$PROVIDE
    4.36  EOT
    4.37  
    4.38  			# packages.equiv is used by tazpkg install to check depends.
    4.39 @@ -152,6 +160,8 @@
    4.40  		fi
    4.41  	done
    4.42  done
    4.43 +rm $rsumf
    4.44 +
    4.45  
    4.46  # Display list size.
    4.47  _ 'Done: %s (%s)' 'packages.desc'  "$(filesize $PKGS/packages.desc)"  | dblog