slitaz-arm rev 25

sat: check pkgs deps and some cosmetic improvment
author Christophe Lincoln <pankso@slitaz.org>
date Mon Mar 03 03:48:52 2014 +0100 (2014-03-03)
parents 0074518df282
children 490947b1da1a
files .hgignore flavors/base/packages.list sat
line diff
     1.1 --- a/.hgignore	Mon Mar 03 02:33:55 2014 +0100
     1.2 +++ b/.hgignore	Mon Mar 03 03:48:52 2014 +0100
     1.3 @@ -1,7 +1,9 @@
     1.4  distro/
     1.5 +cache/
     1.6  mirror/
     1.7  packages/
     1.8  spk/
     1.9  linux-arm
    1.10 -slitaz-arm.gz
    1.11 +slitaz-arm.*
    1.12  vdisk.img
    1.13 +packages.list
     2.1 --- a/flavors/base/packages.list	Mon Mar 03 02:33:55 2014 +0100
     2.2 +++ b/flavors/base/packages.list	Mon Mar 03 03:48:52 2014 +0100
     2.3 @@ -10,3 +10,8 @@
     2.4  tazirc
     2.5  util-linux-blkid
     2.6  util-linux-uuid
     2.7 +ncurses-common
     2.8 +ncursesw
     2.9 +libcomerr
    2.10 +e2fsprogs
    2.11 +dialog
     3.1 --- a/sat	Mon Mar 03 02:33:55 2014 +0100
     3.2 +++ b/sat	Mon Mar 03 03:48:52 2014 +0100
     3.3 @@ -16,6 +16,7 @@
     3.4  packages=$work/packages
     3.5  distro=$work/distro
     3.6  flavors=$work/flavors
     3.7 +cache=$work/cache
     3.8  # http://mirror.slitaz.org/packages/cooking/arm/
     3.9  mirror="http://cook.slitaz.org/cross/arm/packages/"
    3.10  
    3.11 @@ -28,6 +29,7 @@
    3.12  $(boldify "Commands:")
    3.13    gen        Generate a distro cpio/gzip initramfs
    3.14    flavors    List and give info about flavors
    3.15 +  pkgs       Distro packages check and count
    3.16    clean      Clean up the work directory
    3.17    vdisk      Create a virtual disk to be used by Qemu
    3.18    emu        Emulate the distro with qemu-system-arm
    3.19 @@ -70,8 +72,11 @@
    3.20  	gen)
    3.21  		time=$(date +%s)
    3.22  		check_root
    3.23 +		echo ""
    3.24 +		boldify "Generating SliTaz ARM distro"
    3.25 +		separator
    3.26  		rm -rf $distro $initramfs
    3.27 -		mkdir -p $distro
    3.28 +		mkdir -p $distro $cache
    3.29  		
    3.30  		# Get --flavor= packages lists
    3.31  		if [ "$flavor" ]; then
    3.32 @@ -81,7 +86,7 @@
    3.33  		fi
    3.34  
    3.35  		# Packages
    3.36 -		rm -f $work/packages.full
    3.37 +		rm -f $cache/packages.full
    3.38  		if [ -f "packages.list" ]; then
    3.39  			for pkg in $(cat $packages.list)
    3.40  			do
    3.41 @@ -89,21 +94,22 @@
    3.42  				grep "^$pkg |" $work/mirror/packages.desc | while read pkg version desc
    3.43  				do
    3.44  					echo ${pkg}-${version}-arm.tazpkg | sed s'/ //'g \
    3.45 -						>> $work/packages.full
    3.46 +						>> $cache/packages.full
    3.47  				done
    3.48  				unset IFS
    3.49  			done
    3.50  			cd ${work}/mirror
    3.51  		else
    3.52 -			[ ! -d "$packages" ] && echo "Missing: $packages" && exit 1
    3.53 +			[ ! -d "$packages" ] && \
    3.54 +				echo "Missing packages.list or packages/ directory" && exit 1
    3.55  			echo -n "Using packages directory..."
    3.56 -			cd $packages && ls -1 > $work/packages.full
    3.57 +			cd $packages && ls -1 > $cache/packages.full
    3.58  			status
    3.59  		fi
    3.60  		
    3.61  		# Deps install is not well handled by tazpkg/spk actually.
    3.62  		# So simply install all packages and don't resolve deps.
    3.63 -		for pkg in $(cat $work/packages.full)
    3.64 +		for pkg in $(cat $cache/packages.full)
    3.65  		do
    3.66  			pkgdir=$(basename $pkg .tazpkg)
    3.67  			db=$distro/var/lib/tazpkg
    3.68 @@ -175,14 +181,20 @@
    3.69  		case $initramfs in
    3.70  			*.bz2) find . | cpio -o -H newc | bzip2 > ../$initramfs ;;
    3.71  			*.gz) find . | cpio -o -H newc | gzip -9 > ../$initramfs ;;
    3.72 -			*.xz) find . | cpio -o -H newc | xz -9 --format=lzma \
    3.73 -					> ../$initramfs ;;
    3.74 +			*.xz) find . | cpio -o -H newc | xz -9 --format=lzma > ../$initramfs ;;
    3.75  		esac
    3.76 +		
    3.77 +		# Summary
    3.78  		status
    3.79 +		separator && echo ""
    3.80 +		boldify "SliTaz ARM distro summary"
    3.81 +		separator
    3.82  		time=$(($(date +%s) - $time))
    3.83 -		echo "Build time  : ${time}s"
    3.84 -		echo -n "Distro size : "
    3.85 -		cd $work && du -sh $initramfs | awk '{print $1}' ;;
    3.86 +		echo -n "Build time     : " && echo "${time}s"
    3.87 +		echo -n "Initramfs size : " && du -sh $work/$initramfs | awk '{print $1}'
    3.88 +		echo -n "Rootfs size    : " && du -sh $distro | awk '{print $1}'
    3.89 +		echo -n "Packages       : " && ls $db/installed | wc -l
    3.90 +		separator && echo "" ;;
    3.91  		
    3.92  	flavors)
    3.93  		echo ""
    3.94 @@ -195,9 +207,35 @@
    3.95  		done
    3.96  		echo "" ;;
    3.97  	
    3.98 +	pkgs)
    3.99 +		installed="$distro/var/lib/tazpkg/installed"
   3.100 +		SLITAZ_ARCH="arm"
   3.101 +		count=0
   3.102 +		echo ""
   3.103 +		echo -n "Package name" && indent 24 "Missing dependencie"
   3.104 +		separator
   3.105 +		for pkg in ${installed}/*
   3.106 +		do
   3.107 +			. $pkg/receipt
   3.108 +			for dep in $DEPENDS
   3.109 +			do
   3.110 +				if [ ! -d "${installed}/$dep" ]; then
   3.111 +					echo -n "$(colorize 34 $PACKAGE)" && indent 24 "$dep"
   3.112 +					count=$(($count + 1))
   3.113 +				fi
   3.114 +			done
   3.115 +			unset DEPENDS
   3.116 +		done
   3.117 +		if [ "$count" == 0 ]; then
   3.118 +			echo "No missing dependencies" 
   3.119 +		fi
   3.120 +		separator
   3.121 +		echo -n "Installed packages: "; colorize 32 $(ls $installed | wc -l)
   3.122 +		echo "" ;;
   3.123 +	
   3.124  	clean)
   3.125  		check_root
   3.126 -		for r in distro linux-arm slitaz-arm.*z spk packages.*; do
   3.127 +		for r in distro cache linux-arm slitaz-arm.*z; do
   3.128  			echo -n "Cleaning: $r"
   3.129  			rm -rf $work/$r && status
   3.130  		done ;;