]>
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 | ||
14 | allprovides=`for f in $filelist; do | |
15 | soname=$(objdump -p $f | awk '/SONAME/ {print $2}') | |
16 | ||
17 | if [ "$soname" != "" ]; then | |
18 | if [ ! -L $f ]; then | |
19 | echo $soname | |
20 | objdump -p $f | awk ' | |
21 | BEGIN { START=0 ; } | |
22 | /Version definitions:/ { START=1; } | |
23 | /^[0-9]/ && (START==1) { print $4; } | |
24 | /^$/ { START=0; } | |
25 | ' | \ | |
26 | grep -v $soname | \ | |
27 | while read symbol ; do | |
28 | echo "$soname($symbol)" | |
29 | done | |
30 | fi | |
31 | else | |
32 | echo ${f##*/} | |
33 | fi | |
34 | done | sort -u` | |
35 | ||
61f7e1b3 JB |
36 | if [ -f __rpm_noautoprov ] ; then |
37 | for i in `cat __rpm_noautoprov`; do | |
edb85bf4 JK |
38 | allprovides=`echo $allprovides | sed "s!\<$i[[:space:]]*!!g"` |
39 | done | |
40 | fi | |
41 | ||
42 | echo "$allprovides" | |
43 | ||
44 |