--- /dev/null
+#!/bin/sh
+
+# note this works for both a.out and ELF executables
+# it also auto-generates requirment lines for shell scripts
+
+ulimit -c 0
+
+filelist=`sed "s/['\"]/\\\&/g"`
+for i in /usr/src/examples /usr/local/src/examples /usr/share/doc /usr/local/share/doc; do
+filelist=`echo $filelist | sed "s!\<$i[^[:space:]]*[[:space:]]*!!g"`
+done
+exelist=`echo $filelist | xargs -r file | grep ":.*executable" | cut -d: -f1 `
+elfexelist=`echo $exelist | xargs -r file | egrep ":.* ELF" | cut -d: -f1 `
+aoutexelist=`echo $exelist | xargs -r file | egrep -v ":.* ELF" | cut -d: -f1 `
+scriptlist=`echo $filelist | xargs -r file | egrep ":.* (commands|script) " | cut -d: -f1 `
+liblist=`echo $filelist | xargs -r file | grep ":.*shared object" | cut -d : -f1 `
+elfliblist=`echo $liblist | xargs -r file | egrep ":.* ELF" | cut -d: -f1 `
+aoutliblist=`echo $liblist | xargs -r file | egrep -v ":.* ELF" | cut -d: -f1 `
+
+aoutexerequires=`for f in $aoutexelist; do
+ if [ -x $f ]; then
+ ldd $f | awk '/=>/ { print $1 }'
+ fi
+done | sort -u | sed "s/['\"]/\\\&/g" | xargs -r -n 1 basename | grep -v 'libNoVersion.so' | sort -u
+`
+
+elfexerequires=`for f in $elfexelist; do
+ if [ -x $f ]; then
+ objdump -p $f|awk '/NEEDED/ {print $2}'
+ fi
+done | sed "s/['\"]/\\\&/g" | grep -v 'libNoVersion.so' | sort -u
+`
+
+aoutlibrequires=`for f in $aoutliblist; do
+ ldd $f | awk '/=>/ { print $1 }'
+done | sort -u | sed "s/['\"]/\\\&/g" | xargs -r -n 1 basename | grep -v 'libNoVersion.so' | sort -u
+`
+
+elflibrequires=`for f in $elfliblist; do
+ objdump -p $f|awk '/NEEDED/ {print $2}'
+done | sed "s/['\"]/\\\&/g" | grep -v 'libNoVersion.so' | sort -u
+`
+
+for f in $scriptlist; do
+ if [ -x $f ]; then
+ head -1 $f | sed -ne '/^\#\!/p' | sed -e 's/^\#\![ ]*//' | cut -d" " -f1
+ fi
+done | sort -u
+
+for f in $liblist $exelist ; do
+ objdump -p $f | awk '
+ BEGIN { START=0; LIBNAME=""; }
+ /Version References:/ { START=1; }
+ /required from/ && (START==1) {
+ sub(/:/, "", $3);
+ LIBNAME=$3;
+ }
+ (START==1) && (LIBNAME!="") && ($4~/^GLIBC_*/) { print LIBNAME "(" $4 ")"; }
+ /^$/ { START=0; }
+ '
+done | sort -u
+# Generate name of rpm package provides library
+
+
+echo "$aoutexerequires
+$elfexerequires
+$aoutlibrequires
+$elflibrequires" \
+ | sort -u
+
+echo "$aoutexerequires
+$elfexerequires
+$aoutlibrequires
+$elflibrequires" \
+ | xargs -r -- rpm -q --whatprovides --qf "%{NAME}\n" 2>/dev/null \
+ | sort -u