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)