Mercurial > hg > sonic-visualiser
annotate misc/debian-dependencies.sh @ 460:f84413dd5a7a
Avoid trying to look up non-file dependencies
author | Chris Cannam |
---|---|
date | Thu, 21 Jul 2011 09:56:57 +0100 |
parents | 84fd4bb8d656 |
children | ac805901f02a |
rev | line source |
---|---|
Chris@378 | 1 #!/bin/bash |
Chris@378 | 2 |
Chris@378 | 3 target=$1 |
Chris@378 | 4 |
Chris@378 | 5 if [ ! -f "$target" ]; then |
Chris@378 | 6 echo "Usage: $0 target-executable" |
Chris@378 | 7 exit 1 |
Chris@378 | 8 fi |
Chris@378 | 9 |
Chris@378 | 10 pfile=/tmp/packages_$$ |
Chris@378 | 11 rfile=/tmp/redundant_$$ |
Chris@378 | 12 |
Chris@378 | 13 trap "rm -f $pfile $rfile" 0 |
Chris@378 | 14 echo |
Chris@378 | 15 |
Chris@460 | 16 ldd "$target" | awk '{ print $3; }' | grep '^/' | while read lib; do |
Chris@378 | 17 if test -n "$lib" ; then |
Chris@378 | 18 dpkg-query -S "$lib" |
Chris@378 | 19 fi |
Chris@378 | 20 done | grep ': ' | awk -F: '{ print $1 }' | sort | uniq > $pfile |
Chris@378 | 21 |
Chris@378 | 22 echo "Packages providing required libraries:" |
Chris@378 | 23 cat $pfile |
Chris@378 | 24 echo |
Chris@378 | 25 |
Chris@378 | 26 for p in `cat $pfile`; do |
Chris@460 | 27 echo Looking at $p 1>&2 |
Chris@378 | 28 apt-cache showpkg "$p" | grep '^ ' | grep ',' | awk -F, '{ print $1; }' | \ |
Chris@378 | 29 while read d; do |
Chris@378 | 30 if grep -q '^'$d'$' $pfile; then |
Chris@378 | 31 echo $p |
Chris@378 | 32 fi |
Chris@378 | 33 done |
Chris@378 | 34 done | sort | uniq > $rfile |
Chris@378 | 35 |
Chris@378 | 36 echo "Packages that can be eliminated because other packages depend on them:" |
Chris@378 | 37 cat $rfile |
Chris@378 | 38 echo |
Chris@378 | 39 |
Chris@378 | 40 echo "Remaining required packages:" |
Chris@378 | 41 cat $pfile $rfile | sort | uniq -u |
Chris@378 | 42 |