I thought of adding a missing library check to namcap but I don't know python so I gave up.
]]>thanx a lot, for this script :-)
i detected also some more trouble:
e.g.:
/usr/bin/xml2ps:
libgtkmm-2.0.so.1 => not found
libgdkmm-2.0.so.1 => not found
libatkmm-1.0.so.1 => not found
libpangomm-1.0.so.1 => not found
libglibmm-2.0.so.1 => not found
/usr/bin/passepartout:
libgtkmm-2.0.so.1 => not found
libgdkmm-2.0.so.1 => not found
libatkmm-1.0.so.1 => not found
libpangomm-1.0.so.1 => not found
libglibmm-2.0.so.1 => not found
/opt/kde/bin/khangman:
libknewstuff.so.1 => not found
/opt/kde/bin/kpalmdoc:
libreadline.so.4 => not found
/opt/kde/bin/kpilot:
libreadline.so.4 => not found
/opt/kde/bin/kstars:
libknewstuff.so.1 => not found
/opt/kde/bin/klettres:
libknewstuff.so.1 => not found
/opt/kde/bin/kpilotDaemon:
libreadline.so.4 => not found
/opt/kde/bin/korganizer:
libknewstuff.so.1 => not found
libknewstuff.so.1 => not found
/opt/gnome/bin/gnome-pilot-make-password:
libreadline.so.4 => not found
libreadline.so.4 => not found
libreadline.so.4 => not found
/opt/gnome/bin/gpilot-install-file:
libreadline.so.4 => not found
libreadline.so.4 => not found
libreadline.so.4 => not found
/opt/gnome/bin/gpilotd-session-wrapper:
libreadline.so.4 => not found
libreadline.so.4 => not found
libreadline.so.4 => not found
/opt/gnome/bin/ssconvert:
libssl.so.0.9.6 => not found
libcrypto.so.0.9.6 => not found
/opt/gnome/bin/gnumeric:
libssl.so.0.9.6 => not found
libcrypto.so.0.9.6 => not found
/opt/gnome/bin/gpilotd-control-applet:
libreadline.so.4 => not found
libreadline.so.4 => not found
libreadline.so.4 => not found
/usr/lib/xine/plugins/xineplug_inp_dvdnav.so:
libdvdnav.so.1 => not found
libdvdread.so.2 => not found
libxineutils.so.0 => not found
libxine.so.0 => not found
/usr/lib/ruby/1.8/i686-linux/readline.so:
libreadline.so.4 => not found
/usr/lib/newpg/gpg-protect-tool:
libgcrypt.so.1 => not found
/usr/lib/avifile-0.7/xvid.so:
libxvidcore.so.2 => not found
/usr/lib/libpisock.so.8.0.5:
libreadline.so.4 => not found
-> for sure broken:
jack, pilot-link, gnumeric, ruby, passepartout, xine-dvdnav, kde (games, edu, pim, maybe lib and others)
the script is still running - takes long to check 5GB of bins :-)
EDIT: finished - list updated - going to post bugs
]]>#!/bin/bash
# 2004/08/22 K. Piche Find missing library references.
ifs=$IFS
IFS=':'
libdirs="/lib:/usr/lib:/usr/X11R6/lib:/opt/gnome/lib:/opt/qt/lib:/opt/mozilla/lib/mozilla-1.7:/opt/kde/lib"
extras=
# Check ELF binaries in the PATH and specified dir trees.
for tree in $PATH $libdirs $extras
do
echo DIR $tree
# Get list of files in tree.
files=$(find $tree -type f)
IFS=$ifs
for i in $files
do
if [ `file $i | grep -c 'ELF'` -ne 0 ]; then
# Is an ELF binary.
if [ `ldd $i 2>/dev/null | grep -c 'not found'` -ne 0 ]; then
# Missing lib.
echo "$i:"
ldd $i 2>/dev/null | grep 'not found'
fi
fi
done
done
exit
I successfully used it to find readline4 usage by guile and jack, and other older library references in other packages. Hope the devs or somebody finds it useful. And yeah it could pull the lib dirs from ld.so.conf or search the whole system but it is quick and dirty...
PS. Without the /dev/null redirects ldd reports tons of libraries without the exec bit set. Take it out if you want to see that stuff.
]]>