Mercurial > hg > sonic-visualiser
annotate deploy/linux/debian-dependencies.sh @ 961:f3c1546c8a5c
Address #1214, layer import produces wrong layer type. We needed a more principled approach to making sure the format gets updated properly and the dialog elements are consistent (basically separating making the dialog elements consistent from subsequently updating the format). This change should provide that, though there may be gotchas still.
author | Chris Cannam |
---|---|
date | Tue, 12 May 2015 12:31:37 +0100 |
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 |