]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-find-provides
- include --x-libraries=/usr/X11R6/%{_lib} in %configure 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
236d28c2
AM
14case `uname -m` in
15 alpha*) mark64="" ;;
16 *) mark64="()(64bit)" ;;
17esac
18
edb85bf4 19allprovides=`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
42done | sort -u`
43
61f7e1b3
JB
44if [ -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
48fi
49
50echo "$allprovides"
51
52
This page took 0.033342 seconds and 4 git commands to generate.