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