summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xabuild.in24
1 files changed, 18 insertions, 6 deletions
diff --git a/abuild.in b/abuild.in
index 889fa75..60cb91c 100755
--- a/abuild.in
+++ b/abuild.in
@@ -952,17 +952,29 @@ scan_shared_objects() {
# lets tell all the .so files this package provides in .provides-so
scanelf --nobanner --soname "$@" | while read etype soname file; do
# if soname field is missing, soname will be the filepath
- # we only want shared libs
sover=0
- case $soname in
- *.so|*.so.[0-9]*)
+ if [ -z "$file" ]; then
+ file="$soname"
soname=${soname##*/}
- case "$file" in
- *.so.[0-9]*) sover=${file##*.so.};;
+ fi
+
+ # we only want shared libs
+ case $soname in
+ *.so|*.so.[0-9]*);;
+ *) continue;;
+ esac
+
+ case "$file" in
+ *.so.[0-9]*) sover=${file##*.so.};;
+ *.so)
+ # filter out sonames with version when file does not
+ # have version
+ case "$soname" in
+ *.so.[0-9]*) continue;;
esac
- echo "$soname $sover"
;;
esac
+ echo "$soname $sover"
done > "$controldir"/.provides-so
# now find the so dependencies