index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Eli Schwartz <eschwartz@archlinux.org> | 2020-05-14 13:05:30 -0400 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2020-09-23 17:12:01 +1000 |
commit | 406a37206f9afbc3731ac22eda5b45b5a15eddc5 (patch) | |
tree | 3daa0075785ea5eb760a8b67f905f181e4ea9d74 /scripts | |
parent | 4533c6a8e0f39c7707e671b7f9687607b46f1417 (diff) |
-rw-r--r-- | scripts/makepkg.sh.in | 16 |
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index ed31ca0e..3ed12eab 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -522,9 +522,10 @@ find_libdepends() { find_libprovides() { - local p libprovides missing + local p versioned_provides libprovides missing for p in "${provides[@]}"; do missing=0 + versioned_provides=() case "$p" in *.so) mapfile -t filename < <(find "$pkgdir" -type f -name $p\* | LC_ALL=C sort) @@ -537,7 +538,6 @@ find_libprovides() { local sofile=$(LC_ALL=C readelf -d "$fn" 2>/dev/null | sed -n 's/.*Library soname: \[\(.*\)\].*/\1/p') if [[ -z "$sofile" ]]; then warning "$(gettext "Library listed in %s is not versioned: %s")" "'provides'" "$p" - libprovides+=("$p") continue fi @@ -547,25 +547,25 @@ find_libprovides() { # extract the library major version local soversion="${sofile##*\.so\.}" - libprovides+=("${p}=${soversion}-${soarch}") + versioned_provides+=("${p}=${soversion}-${soarch}") else warning "$(gettext "Library listed in %s is not a shared object: %s")" "'provides'" "$p" - libprovides+=("$p") fi done else - libprovides+=("$p") missing=1 fi ;; - *) - libprovides+=("$p") - ;; esac if (( missing )); then warning "$(gettext "Cannot find library listed in %s: %s")" "'provides'" "$p" fi + if (( ${#versioned_provides[@]} > 0 )); then + libprovides+=("${versioned_provides[@]}") + else + libprovides+=("$p") + fi done (( ${#libprovides[@]} )) && printf '%s\n' "${libprovides[@]}" |