annotate misc/debian-dependencies.sh @ 785:624a8864391e

Restore the old prev/next layer commands (that were never enabled because they didn't work) using the new fixed order layer list (so they now do work)
author Chris Cannam
date Tue, 02 Sep 2014 16:06:41 +0100
parents f84413dd5a7a
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