summaryrefslogtreecommitdiff
path: root/abuild.in
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-09-04 12:30:08 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2012-09-04 13:35:21 +0000
commit87953c711587b932fb8e9f95798a0907faaaecf6 (patch)
tree48cc0387d0d4eeafc75ca75a73613ef2d17d5d9b /abuild.in
parenta5f67dcf25fae7c0200298623cccb61d9275fd28 (diff)
downloadabuild-87953c711587b932fb8e9f95798a0907faaaecf6.tar.gz
abuild-87953c711587b932fb8e9f95798a0907faaaecf6.tar.bz2
abuild-87953c711587b932fb8e9f95798a0907faaaecf6.tar.xz
abuild-87953c711587b932fb8e9f95798a0907faaaecf6.zip
abuild: use scanelf --soname to find the provides-so
Diffstat (limited to 'abuild.in')
-rwxr-xr-xabuild.in9
1 files changed, 7 insertions, 2 deletions
diff --git a/abuild.in b/abuild.in
index 32dd153..3acec46 100755
--- a/abuild.in
+++ b/abuild.in
@@ -778,8 +778,13 @@ prepare_tracedeps() {
[ "$arch" = "noarch" ] && return 0
options_has "!tracedeps" && return 0
# lets tell all the .so files this package provides in .provides-so
- find -name '*.so' -o -name '*.so.[0-9]*' | sed 's:.*/::' \
- >"$controldir"/.provides-so
+ scanelf --recursive --nobanner --soname "$dir" | while read etype soname file; do
+ # if soname field is missing, soname will be the filepath
+ # we only want shared libs
+ case $soname in
+ *.so|*.so.[0-9]*) echo ${soname##*/};;
+ esac
+ done >"$controldir"/.provides-so
# lets tell all the places we should look for .so files - all rpaths
scanelf -q -Rr "$dir" | sed -e 's/[[:space:]].*//' -e 's/:/\n/' \
| sort | uniq \