tazlito rev 103

tazlito: better lzma default compression ratio
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Aug 17 10:42:38 2009 +0200 (2009-08-17)
parents 329dcaa0bd9b
children 78b1b9a2e4fe
files tazlito
line diff
     1.1 --- a/tazlito	Sun Aug 16 21:20:54 2009 +0200
     1.2 +++ b/tazlito	Mon Aug 17 10:42:38 2009 +0200
     1.3 @@ -276,6 +276,19 @@
     1.4  	genisohooks final
     1.5  }
     1.6  
     1.7 +lzma_history_bits()
     1.8 +{
     1.9 +	local n
    1.10 +	local sz
    1.11 +	n=20	# 1Mb
    1.12 +	sz=$(du -sk $1 | cut -f1)
    1.13 +	while [ $sz -gt 1024 -a $n -lt 28 ]; do
    1.14 +		n=$(( $n + 1 ))
    1.15 +		sz=$(( $sz / 2 ))
    1.16 +	done
    1.17 +	echo $n
    1.18 +}
    1.19 +
    1.20  # Pack rootfs
    1.21  pack_rootfs()
    1.22  {
    1.23 @@ -285,7 +298,7 @@
    1.24  		cat > $2
    1.25  	elif [ -x /usr/bin/lzma -a "$COMPRESSION" != "gzip" ]; then
    1.26  		echo -n "Generating lzma'ed initramfs... "
    1.27 -		lzma e -si -so -d24 > $2
    1.28 +		lzma e -si -so -d$(lzma_history_bits $1) > $2
    1.29  	else
    1.30  		echo -n "Generating gziped initramfs... "
    1.31  		gzip -9 > $2
    1.32 @@ -1257,13 +1270,8 @@
    1.33  			echo -n "Repack $(basename $i)"
    1.34  			(zcat $i || unlzma -c $i || cat $i) \
    1.35  				2>/dev/null > $TMP_DIR/rootfs
    1.36 -			n=20	# 1Mb
    1.37 -			sz=$(stat -c %s $TMP_DIR/rootfs)
    1.38 -			while [ $sz -gt 1048576 ]; do
    1.39 -				n=$(( $n + 1 ))
    1.40 -				sz=$(( $sz / 2 ))
    1.41 -			done
    1.42 -			lzma e $TMP_DIR/rootfs $i -d$n
    1.43 +			lzma e $TMP_DIR/rootfs $i \
    1.44 +				-d$(lzma_history_bits $TMP_DIR/rootfs)
    1.45  			status
    1.46  		done
    1.47