Here's the lib-compare.sh script I've been using to detect when symbols get added (or removed, unfortunately) from libraries. The usage is: lib-compare.sh old-deb new-deb. -- Daniel Schepler "Please don't disillusion me. I [EMAIL PROTECTED] haven't had breakfast yet." -- Orson Scott Card
#! /bin/sh -e
listsyms() { nm -DC $1 | egrep '^[0-9a-f]' | cut -c18- | sort } if [ $# -ne 2 ]; then echo "Usage: $0 old-deb new-deb" 1>&2 exit 1 fi olddeb=$1 newdeb=$2 olddebdir=`mktemp -d` newdebdir=`mktemp -d` trap 'rm -rf $olddebdir $newdebdir' exit dpkg-deb -x $olddeb $olddebdir dpkg-deb -x $newdeb $newdebdir olddebsyms=`mktemp` newdebsyms=`mktemp` trap 'rm -rf $olddebsyms $newdebsyms $olddebdir $newdebdir' exit for f in `cd $newdebdir; find . -name lib\*.so\* -type f -print | sort`; do echo $f g=`basename $f|sed -e 's/\.so\..*$/.so\*/'` h=`find $olddebdir -name "$g" -type f -print` if [ -f $h ]; then listsyms $h >$olddebsyms listsyms $newdebdir/$f >$newdebsyms (diff -U 0 $olddebsyms $newdebsyms | egrep '^[-+]') || [ $? = 1 ] else echo "(new library)" fi done