cookutils diff cook @ rev 16
Cant use tazpkg to pack since it dont handle EXTRAVERSION and improving CGI
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu May 05 17:05:19 2011 +0200 (2011-05-05) |
parents | b6bbe55cd15e |
children | c3c30b1506b8 |
line diff
1.1 --- a/cook Thu May 05 05:04:15 2011 +0200 1.2 +++ b/cook Thu May 05 17:05:19 2011 +0200 1.3 @@ -10,8 +10,9 @@ 1.4 [ -f "/etc/slitaz/cook.conf" ] && . /etc/slitaz/cook.conf 1.5 [ -f "cook.conf" ] && . ./cook.conf 1.6 1.7 -# Share activity and broken packages with the Cooker. 1.8 +# Share DB and status with the Cooker. 1.9 activity="$CACHE/activity" 1.10 +command="$CACHE/command" 1.11 broken="$CACHE/broken" 1.12 1.13 # 1.14 @@ -195,7 +196,7 @@ 1.15 cd $WOK/$pkg 1.16 [ -d install ] && prod=$(du -sh install | awk '{print $1}' 2>/dev/null) 1.17 fs=$(du -sh taz/* | awk '{print $1}') 1.18 - size=$(du -sh $PKGS/$PACKAGE-${VERSION}${EXTRAVERSION}.* | awk '{print $1}') 1.19 + size=$(du -sh $PKGS/$PACKAGE-${VERSION}*.tazpkg | awk '{print $1}') 1.20 files=$(cat taz/$PACKAGE-*/files.list | wc -l) 1.21 gettext "Summary for:"; echo " $PACKAGE $VERSION" 1.22 separator 1.23 @@ -297,7 +298,7 @@ 1.24 echo -n " $dep" 1.25 yes | tazpkg remove $dep >/dev/null 1.26 done 1.27 - echo "" 1.28 + echo -e "\n" 1.29 mv -f $CACHE/installed.diff $CACHE/installed.last.diff 1.30 fi 1.31 } 1.32 @@ -377,14 +378,6 @@ 1.33 # QA: No compile_rules so no error, valid. 1.34 mkdir -p $install 1.35 fi 1.36 - if grep -q ^genpkg_rules $pkgdir/receipt; then 1.37 - gettext -e "Executing: genpkg_rules\n" 1.38 - cd $pkgdir 1.39 - mkdir -p $fs && genpkg_rules || ( echo -e \ 1.40 - "\nERROR: genpkg_rules failed\n" | \ 1.41 - tee -a $LOGS/$pkg.log && exit 1 ) 1.42 - gettext -e "Now will pack the package.\n" 1.43 - fi 1.44 separator && echo "" 1.45 } 1.46 1.47 @@ -404,11 +397,18 @@ 1.48 fi 1.49 } 1.50 1.51 -# Create the package. 1.52 +# Create the package. Wanted to use Tazpkg to create a tazpkg package at first, 1.53 +# but it dont handle EXTRAVERSION. 1.54 packit() { 1.55 set_paths 1.56 - echo "Packing: $PACKAGE ${VERSION}${EXTRAVERSION}" 1.57 + echo "Packing: $PACKAGE $VERSION" 1.58 separator 1.59 + if grep -q ^genpkg_rules $pkgdir/receipt; then 1.60 + gettext -e "Executing: genpkg_rules\n" 1.61 + cd $pkgdir 1.62 + mkdir -p $fs && genpkg_rules || ( echo -e \ 1.63 + "\nERROR: genpkg_rules failed\n" | tee -a $LOGS/$pkg.log && exit 1 ) 1.64 + fi 1.65 cd $pkgdir/taz 1.66 strip_package 1.67 for file in receipt description.txt 1.68 @@ -418,9 +418,61 @@ 1.69 cp -f ../$file $pack && chown 0.0 $pack/$file && status 1.70 done 1.71 copy_generic_files 1.72 - # Use Tazpkg to create a tazpkg package... 1.73 - tazpkg pack $PACKAGE-${VERSION}${EXTRAVERSION} | grep "\[*\]" 1.74 - separator && echo "" 1.75 + 1.76 + # Create files.list with redirecting find outpout. 1.77 + gettext "Creating the list of files..." && cd $fs 1.78 + find . -type f -print > ../files.list 1.79 + find . -type l -print >> ../files.list 1.80 + cd .. && sed -i s/'^.'/''/ files.list 1.81 + status 1.82 + gettext "Creating md5sum of files..." 1.83 + while read file; do 1.84 + [ -L "fs$file" ] && continue 1.85 + [ -f "fs$file" ] || continue 1.86 + case "$file" in 1.87 + /lib/modules/*/modules.*|*.pyc) continue;; 1.88 + esac 1.89 + md5sum "fs$file" | sed 's/ fs/ /' 1.90 + done < files.list > md5sum 1.91 + status 1.92 + UNPACKED_SIZE=$(du -chs fs receipt files.list md5sum \ 1.93 + description.txt 2> /dev/null | awk \ 1.94 + '{ sz=$1 } END { print sz }') 1.95 + 1.96 + # Build cpio archives. 1.97 + gettext "Compressing the fs... " 1.98 + find fs | cpio -o -H newc --quiet | lzma e fs.cpio.lzma -si 1.99 + rm -rf fs 1.100 + status 1.101 + PACKED_SIZE=$(du -chs fs.cpio.lzma receipt files.list \ 1.102 + md5sum description.txt 2> /dev/null | awk \ 1.103 + '{ sz=$1 } END { print sz }') 1.104 + gettext "Updating receipt sizes..." 1.105 + sed -i s/^PACKED_SIZE.*$// receipt 1.106 + sed -i s/^UNPACKED_SIZE.*$// receipt 1.107 + sed -i "s/^PACKAGE=/PACKED_SIZE=\"$PACKED_SIZE\"\nUNPACKED_SIZE=\"$UNPACKED_SIZE\"\nPACKAGE=/" receipt 1.108 + status 1.109 + 1.110 + # Set extra version. 1.111 + if [ "$EXTRAVERSION" ]; then 1.112 + gettext "Updating receipt EXTRAVERSION: "; echo -n "$EXTRAVERSION" 1.113 + sed -i s/^EXTRAVERSION.*$// receipt 1.114 + sed -i "s/^VERSION=/EXTRAVERSION=\"$EXTRAVERSION\"\nVERSION=/" receipt 1.115 + status 1.116 + fi 1.117 + 1.118 + # Compress. 1.119 + gettext "Creating full cpio archive... " 1.120 + find . -print | cpio -o -H newc --quiet > \ 1.121 + ../$PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg 1.122 + status 1.123 + gettext "Restoring original package tree... " 1.124 + unlzma -c fs.cpio.lzma | cpio -idm --quiet 1.125 + status 1.126 + rm fs.cpio.lzma && cd .. 1.127 + separator && gettext "Package: " 1.128 + du -sh $PACKAGE-${VERSION}${EXTRAVERSION}.tazpkg 1.129 + echo "" 1.130 } 1.131 1.132 # Verify package quality and consitensy. 1.133 @@ -578,6 +630,7 @@ 1.134 pkg="$1" 1.135 [ -z "$pkg" ] && usage 1.136 check_pkg_in_wok && echo "" 1.137 + echo "cook:$pkg" > $command 1.138 unset inst 1.139 unset_receipt 1.140 cd $WOK/$pkg && . ./receipt 1.141 @@ -601,10 +654,11 @@ 1.142 cookit | tee $LOGS/$pkg.log 1.143 remove_deps | tee -a $LOGS/$pkg.log 1.144 cookit_quality 1.145 + 1.146 packit | tee -a $LOGS/$pkg.log 1.147 clean_log 1.148 packit_quality 1.149 - 1.150 + 1.151 # Time and summary 1.152 time=$(($(date +%s) - $time)) 1.153 summary | tee -a $LOGS/$pkg.log