tazpkg rev 295

tazpkg convert: filter depends & unresolved
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Aug 29 15:27:00 2009 +0200 (2009-08-29)
parents eb1ba28dbea7
children 72a0ac8780a0
files tazpkg
line diff
     1.1 --- a/tazpkg	Tue Aug 25 22:04:07 2009 +0200
     1.2 +++ b/tazpkg	Sat Aug 29 15:27:00 2009 +0200
     1.3 @@ -959,38 +959,47 @@
     1.4   		/var/lib/tazpkg/undigest/*/files.list.lzma ; do
     1.5   		[ -f $i ] && lzma d $i -so >> $TMP_DIR/files.list
     1.6  	done
     1.7 -	find $TMP_DIR/$file/fs -type f | while read file ; do
     1.8 -		is_elf $file || continue
     1.9 -		case "$file" in
    1.10 +	find $TMP_DIR/$file/fs -type f | while read chkfile ; do
    1.11 +		is_elf $chkfile || continue
    1.12 +		case "$chkfile" in
    1.13  		*.o|*.ko|*.ko.gz) continue;;
    1.14  		esac
    1.15 -		ldd $file | while read lib rem; do
    1.16 +		ldd $chkfile | while read lib rem; do
    1.17  			case "$lib" in
    1.18  			statically|linux-gate.so*|ld-*.so|*/ld-*.so)
    1.19  				continue;;
    1.20  			esac
    1.21 +			find $TMP_DIR/$file/fs | grep -q /$lib$ && continue
    1.22  			for dep in $(grep $lib files.list | cut -d: -f1); do
    1.23 -				case " $DEFAULT_DEPENDS $ALL_DEPENDS " in
    1.24 +				case " $DEFAULT_DEPENDS " in
    1.25  				*\ $dep\ *) continue 2;;
    1.26  				esac
    1.27 +				grep -qs "^$dep$" $TMP_DIR/depends && continue 2
    1.28  			done
    1.29 -			ALL_DEPENDS="$ALL_DEPENDS $dep"
    1.30  			if [ -n "$dep" ]; then
    1.31 -				echo -n " $dep"
    1.32 +				echo "$dep" >> $TMP_DIR/depends
    1.33  			else
    1.34 +				grep -qs ^$lib$ $TMP_DIR/unresolved ||
    1.35  				echo "$lib" >> $TMP_DIR/unresolved
    1.36  			fi
    1.37  		done
    1.38  	done
    1.39 +	spc=""
    1.40 +	cat $TMP_DIR/depends | sort | uniq | while read file; do
    1.41 +		echo -n "$spc$file"
    1.42 +		spc=" "
    1.43 +	done
    1.44  }
    1.45  
    1.46  show_unresolved_lib()
    1.47  {
    1.48  	if [ -s $TMP_DIR/unresolved ]; then
    1.49 -		echo "BUGS=\"No dependency for $(cat $TMP_DIR/unresolved)\"" >> $1
    1.50 -		for lib in $(cat $TMP_DIR/unresolved) ; do
    1.51 +		echo "BUGS=\"No dependency for" >> $1
    1.52 +		cat $TMP_DIR/unresolved | sort | uniq | while read file; do
    1.53  			echo -e "$WARNING: unknown dependency for $lib"
    1.54 +			echo -n " $file" >> $1
    1.55  		done
    1.56 +		echo "\"" >> $1
    1.57  	fi
    1.58  }
    1.59