summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-05-14 10:14:06 +0200
committerErich Eckner <git@eckner.net>2020-05-14 10:14:06 +0200
commita458b16e141836acce21e02a953209b93271d822 (patch)
tree60e8b85e6d8e7779a38b9db1af62efd7afb46eae
parent035c49f5ada51bc3318928f48f07dfe5e960ef8a (diff)
downloadarchlinuxewe-a458b16e141836acce21e02a953209b93271d822.tar.xz
advertise-provided-libraries.PKGBUILDpatch: do not advertise by suffix only
-rw-r--r--advertise-provided-libraries.PKGBUILDpatch14
1 files changed, 13 insertions, 1 deletions
diff --git a/advertise-provided-libraries.PKGBUILDpatch b/advertise-provided-libraries.PKGBUILDpatch
index 392c321ef..b7d2203ac 100644
--- a/advertise-provided-libraries.PKGBUILDpatch
+++ b/advertise-provided-libraries.PKGBUILDpatch
@@ -2,7 +2,19 @@ if printf '%s\n' "${arch[@]}" | grep -qvxF any; then
if [ -d "${pkgdir}/usr/lib" ]; then
provides+=(
$(
- find "${pkgdir}/usr/lib" -name '*.so' -printf '%f\n'
+ find "${pkgdir}/usr/lib" \
+ -name '*.so' -printf '%p\n' \
+ | while read -r lib; do
+ if ! LC_ALL=C readelf -h "$fn" 2>/dev/null | grep -q '.*Type:.*DYN (Shared object file).*'; then
+ # no shared object
+ continue
+ fi
+ if ! LC_ALL=C readelf -d "$fn" 2>/dev/null | grep -q '.*Library soname: \[.*\].*'; then
+ # not versioned
+ continue
+ fi
+ printf '%s\n' "${lib##*/}"
+ done
)
)
fi