--- PKGBUILD-old 2014-06-14 10:45:38.279679137 +0300 +++ PKGBUILD 2014-06-14 11:14:01.893607252 +0300 @@ -19,15 +19,17 @@ create_links() { # create soname links - 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]*/}" - done < <(find "${pkgdir}" -type f -name '*.so*' -print0) + for _lib in $(find "${pkgdir}" -name '*.so*'); do + _soname=$(dirname "${_lib}")/$(readelf -d "${_lib}" | grep -Po 'SONAME.*: \[\K[^]]*' || true) + _base=$(echo ${_soname} | sed -r 's/.[0-9]+$//') + if [[ "${_soname##*/}" ]]; then + [[ -e "${_soname}" ]] || ln -s $(basename "${_lib}") "${_soname}" + [[ -e "${_base}" ]] || ln -s $(basename "${_soname}") "${_base}" + fi + done } build() { - cd "${srcdir}" sh "${_pkg}.run" --extract-only } @@ -35,7 +37,7 @@ pkgdesc="OpenCL implemention for NVIDIA" depends=('libcl' 'zlib') optdepends=('opencl-headers: headers necessary for OpenCL development') - cd "${srcdir}/${_pkg}" + cd "${_pkg}" # OpenCL install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd" @@ -53,7 +55,7 @@ depends=('nvidia-utils') conflicts=('libgl') provides=('libgl') - cd "${srcdir}/${_pkg}" + cd "${_pkg}" mkdir -p "${pkgdir}/usr/lib/xorg/modules/extensions" ln -s "/usr/lib/nvidia/xorg/modules/extensions/libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.${pkgver}" @@ -86,7 +88,7 @@ optdepends=('gtk2: nvidia-settings' 'xorg-server-devel: nvidia-xconfig' 'opencl-nvidia: OpenCL support') - cd "${srcdir}/${_pkg}" + cd "${_pkg}" # X driver install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"