diff options
Diffstat (limited to 'teams-for-linux')
-rw-r--r-- | teams-for-linux/PKGBUILD | 130 |
1 files changed, 127 insertions, 3 deletions
diff --git a/teams-for-linux/PKGBUILD b/teams-for-linux/PKGBUILD index 2e8207cf7..f731dc14c 100644 --- a/teams-for-linux/PKGBUILD +++ b/teams-for-linux/PKGBUILD @@ -3,8 +3,8 @@ # Contributor: Ivelin Velkov <ivelin dot velkov at gmail dot com> pkgname=teams-for-linux -pkgver=1.9.0 -pkgrel=17 +pkgver=1.11.2 +pkgrel=1 pkgdesc="Unofficial Microsoft Teams client for Linux using Electron." arch=("aarch64" "armv7h" "i686" "x86_64") url="https://github.com/IsmaelMartinez/${pkgname}" @@ -43,7 +43,7 @@ source=( "${pkgname}-${pkgver}.tar.gz::https://github.com/IsmaelMartinez/${pkgname}/archive/v${pkgver}.tar.gz" "${pkgname}.desktop" ) -sha512sums=('e3da94be36a6b59cd4f6c4c36503c4a4c5fed61dc6ce6480693736c86258fae0a7ac720cdd28b941541f1adfd8cad858aea86fcb5b29f86131f26576d9604fff' +sha512sums=('576788bfcb3533d4f66c9108e3db0665e5dcda2288b470936b1f38e6f3a718d50645b6d38c810d0dfb4b421b9f2d17034026dde8ae29f82f7a0f72624779e52a' '3e80d0aaefe42644265bd379f2279912c9358b2ce5c5efcd9aa7c4c67a07841da77c0fabac87eb7837f3cd7f0e620ce322c8791ff61bd3729c343108bd5d5d61') build() { @@ -82,4 +82,128 @@ package() { install -Dm644 "${_file}" "${pkgdir}/usr/share/icons/hicolor/${_filename%.png}/apps/${pkgname}.png" done ln -sf "/opt/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/${pkgname}" +_patch_PKGBUILD +} +_patch_PKGBUILD() { +if printf '%s\n' "${arch[@]}" | grep -qvxF any; then + if [ -d "${pkgdir}/usr/lib" ]; then + provides=( + $( + { + printf '%s\n' "${provides[@]}" + find "${pkgdir}/usr/lib" \ + -name '*.so' -printf '%p\n' \ + | while read -r fn; 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' "${fn##*/}" + done + } \ + | sort -u + ) + ) + fi +fi +if printf '%s\n' "${arch[@]}" | grep -qvxF any; then + if ! _errors=$( + diff <( + { + find "${pkgdir}" -type f -exec objdump -x {} \; 2>/dev/null \ + | sed ' + s/^\s*NEEDED\s\+\(\S\+\.so\)\(\.\S\+\)\?\s*$/\1/ + t + d + ' \ + | sort -u \ + | while read -r _lib; do + for _libdir in {${pkgdir},}/usr/lib*; do + [ -d "${_libdir}" ] || continue + [ -e "${_libdir}/${_lib}" ] \ + && printf '%s\n' "${_lib}" + done + done \ + | sort -u + for _libdir in "${pkgdir}/usr"/lib*; do + [ -d "${_libdir}" ] || continue + find "${_libdir}" -not -type d -name '*.so' -printf '%f\n%f\n' + done + } \ + | sort \ + | uniq -u \ + | while read -r _lib; do + if ! _pkg=$( + pacman -Qqo "/usr/lib/${_lib}" 2>/dev/null + ); then + >&2 printf 'WARNING: noone owns "%s"\n' "${_lib}" + printf '%s\n' "${_lib}" + continue + fi + if pacman -Qi "${_pkg}" \ + | sed ' + :a + $! N + s/\n\s\+/ / + ta + P + D + ' \ + | sed -n ' + s/^Provides\s*:\s*// + T + y/ /\n/ + p + ' \ + | sed -n ' + /^$/d + s/=.*$// + T + /\.so$/p + ' \ + | grep -qxF "${_lib}"; then + printf '%s\n' "${_lib}" + else + printf '%s\n' "${_pkg}" + fi + done \ + | sed ' + s/[<>]\?=.*$// + /^python$/d + /^$/d + ' \ + | sort -u + ) <( + eval 'printf '"'"'%s\n'"'"' "${_pinned_dependencies[@]}" "${_pinned_dependencies_'"${CARCH}"'[@]}" "${_pinned_dependencies_'"${OS}"'[@]}"' \ + | sed ' + s/[<>]\?=.*$// + /^python$/d + /^$/d + ' \ + | sort -u + ) + ); then + { + printf 'There are discrepancies between the _pinned_dependencies and the linked libraries in %s'"'"'s %s():\n' \ + "${pkgbase:-${pkgname}}" \ + "${FUNCNAME[1]}" + printf '%s\n' "${_errors}" \ + | sed ' + s/^</actual / + t + s/^>/claimed / + t + d + ' \ + | sort -k1,1 + } \ + | tee -a /tmp/pin-dependencies.log + return 1 + fi +fi +: } |