--- a/PKGBUILD 2014-06-13 20:32:53.980107000 +0300 +++ b/PKGBUILD 2014-06-13 20:51:53.158278000 +0300 @@ -22,7 +22,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) }