]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-find-provides
- rebuild with latest rpm.macros
[packages/rpm.git] / rpm-find-provides
CommitLineData
edb85bf4
JK
1#!/bin/sh
2cd `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
7filelist=$(grep "\\.so" | grep -v "^/lib/ld.so" | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1)
8if [ -f __rpm_noautoprovfiles ] ; then
9 for i in `cat __rpm_noautoprovfiles`; do
10 filelist=`echo $filelist | sed "s![[:space:]]*$i[[:space:]]*!!g"`
11 done
12fi
13
14allprovides=`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
34done | sort -u`
35
61f7e1b3
JB
36if [ -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
40fi
41
42echo "$allprovides"
43
44
This page took 0.033814 seconds and 4 git commands to generate.