--- a/PKGBUILD 2014-06-13 22:16:24.000000000 +0300 +++ b/PKGBUILD 2014-06-13 22:20:21.802006906 +0300 @@ -29,7 +29,10 @@ while read -d '' _lib; do _soname="$(dirname "${_lib}")/$(LC_ALL=C readelf -d "${_lib}" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')" [[ -e "${_soname}" ]] || ln -s "$(basename "${_lib}")" "${_soname}" - [[ -e "${_soname/.[0-9]*/}" ]] || ln -s "$(basename "${_soname}")" "${_soname/.[0-9]*/}" + _linkname="${_soname}" + # if the path component after last slash contains .so, remove everything after it + [[ "${_linkname##*\/}" == *.so.* ]] && _linkname="${_soname%.so.*}.so" + [[ -e "${_linkname}" ]] || ln -s "$(basename "${_soname}")" "${_linkname}" done < <(find "${pkgdir}" -type f -name '*.so*' -print0) }