67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#! /usr/bin/ksh
|
|
|
|
# Original Author: Ralph Goers(rgoer@Candle.Com)
|
|
# Borrowed heavily from Tim Mooney's HP version.
|
|
# This file is distributed under the terms of the GNU General Public License
|
|
#
|
|
# find-requires is part of RPM, the RedHat Package Manager. find-requires
|
|
# reads a list of full pathnames (in a package) on stdin, and outputs all
|
|
# shared libraries the package requires to run correctly.
|
|
#
|
|
# On AIX, use `dump -H' to find the library dependencies for an executable
|
|
#
|
|
# Example dump output:
|
|
#
|
|
#$dump -H /usr/bin/dump
|
|
#
|
|
#/usr/bin/dump:
|
|
#
|
|
# ***Loader Section***
|
|
# Loader Header Information
|
|
#VERSION# #SYMtableENT #RELOCent LENidSTR
|
|
#0x00000001 0x00000021 0x0000006c 0x0000002f
|
|
#
|
|
##IMPfilID OFFidSTR LENstrTBL OFFstrTBL
|
|
#0x00000002 0x00000848 0x00000049 0x00000877
|
|
#
|
|
#
|
|
# ***Import File Strings***
|
|
#INDEX PATH BASE MEMBER
|
|
#0 /usr/lib:/lib:/usr/lpp/xlC/lib
|
|
#1 libc.a shr.o
|
|
|
|
#
|
|
#
|
|
filelist=`sed "s/['\"]/\\\&/g" | xargs file | grep -e executable -e archive | cut -d: -f1`
|
|
|
|
for f in $filelist
|
|
do
|
|
dump -H $f | awk '
|
|
|
|
#
|
|
# For you non-awk-ers, no single quotes in comments -- the shell
|
|
# sees them and things get hosed.
|
|
#
|
|
|
|
BEGIN {
|
|
in_shlib_list = 0;
|
|
in_file_strings = 0;
|
|
FS = " ";
|
|
RS = "\n";
|
|
}
|
|
|
|
in_shlib_list == 1 {
|
|
print $2
|
|
}
|
|
|
|
in_file_strings == 1 && $1 == "0" {
|
|
in_shlib_list = 1
|
|
}
|
|
|
|
/\*Import File Strings\*/ {
|
|
in_file_strings = 1
|
|
}
|
|
|
|
' # end of awk
|
|
done | sort -u
|