annotate deploy/linux/debian-dependencies.sh @ 890:34587a06f6f0

Unit tests for StringBits::splitQuoted
author Chris Cannam
date Mon, 01 Dec 2014 15:42:58 +0000
parents 8215909b74d2
children c977df9da61e
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@863 14 echo 1>&2
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@863 22 echo "Packages providing required libraries:" 1>&2
Chris@863 23 cat $pfile 1>&2
Chris@863 24 echo 1>&2
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@865 31 echo $p
Chris@378 32 fi
Chris@378 33 done
Chris@378 34 done | sort | uniq > $rfile
Chris@378 35
Chris@863 36 echo "Packages that can be eliminated because other packages depend on them:" 1>&2
Chris@863 37 cat $rfile 1>&2
Chris@863 38 echo 1>&2
Chris@378 39
Chris@865 40 cat $pfile $rfile | sort | uniq -u | sed 's/$/,/' | fmt -1000 | sed 's/^/Depends: /' | sed 's/,$/, libc6/'
Chris@378 41
Chris@863 42