3 # This script reads filenames from STDIN and outputs any relevant provides
4 # information that needs to be included in the package.
6 filelist=`sed "s/['\"]/\\\&/g"`
8 solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \
9 xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1)
10 perllist=$(echo $filelist | grep "\\.pm")
15 # --- Library sonames and weak symbol versions (from glibc).
17 soname=$(objdump -p $f | awk '/SONAME/ {print $2}')
19 lib64=`if file -L $f 2>/dev/null | \
20 grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi`
21 if [ "$soname" != "" ]; then
26 /Version definitions:/ { START=1; }
27 /^[0-9]/ && (START==1) { print $4; }
31 while read symbol ; do
32 echo "$soname($symbol)`echo $lib64 | sed 's/()//'`"
42 [ -x /usr/lib/rpm/perl.prov -a -n "$perllist" ] &&
43 echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.prov | sort -u
47 [ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] &&
48 echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.prov | sort -u
52 [ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] &&
53 echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.prov | sort -u