]>
Commit | Line | Data |
---|---|---|
edb85bf4 JK |
1 | #!/bin/sh |
2 | cd `rpm --eval %{_builddir}` | |
3 | ||
4 | # This script reads filenames from STDIN and outputs any relevant provides | |
5 | # information that needs to be included in the package. | |
6 | ||
7 | filelist=$(grep "\\.so" | grep -v "^/lib/ld.so" | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) | |
8 | if [ -f __rpm_noautoprovfiles ] ; then | |
9 | for i in `cat __rpm_noautoprovfiles`; do | |
10 | filelist=`echo $filelist | sed "s![[:space:]]*$i[[:space:]]*!!g"` | |
11 | done | |
12 | fi | |
13 | ||
236d28c2 AM |
14 | case `uname -m` in |
15 | alpha*) mark64="" ;; | |
16 | *) mark64="()(64bit)" ;; | |
17 | esac | |
18 | ||
edb85bf4 | 19 | allprovides=`for f in $filelist; do |
236d28c2 | 20 | soname=$(objdump -p $f 2> /dev/null | awk '/SONAME/ {print $2}') |
edb85bf4 | 21 | |
236d28c2 AM |
22 | lib64=`if file -L $f 2>/dev/null | \ |
23 | grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` | |
24 | ||
edb85bf4 JK |
25 | if [ "$soname" != "" ]; then |
26 | if [ ! -L $f ]; then | |
236d28c2 AM |
27 | echo $soname$lib64 |
28 | objdump -p $f 2> /dev/null | awk ' | |
edb85bf4 JK |
29 | BEGIN { START=0 ; } |
30 | /Version definitions:/ { START=1; } | |
31 | /^[0-9]/ && (START==1) { print $4; } | |
32 | /^$/ { START=0; } | |
33 | ' | \ | |
34 | grep -v $soname | \ | |
35 | while read symbol ; do | |
236d28c2 | 36 | echo "$soname($symbol)`echo $lib64 | sed 's/()//'`" |
edb85bf4 JK |
37 | done |
38 | fi | |
39 | else | |
236d28c2 | 40 | echo ${f##*/}$lib64 |
edb85bf4 JK |
41 | fi |
42 | done | sort -u` | |
43 | ||
61f7e1b3 JB |
44 | if [ -f __rpm_noautoprov ] ; then |
45 | for i in `cat __rpm_noautoprov`; do | |
edb85bf4 JK |
46 | allprovides=`echo $allprovides | sed "s!\<$i[[:space:]]*!!g"` |
47 | done | |
48 | fi | |
49 | ||
50 | echo "$allprovides" | |
51 | ||
52 |