diff options
author | Aviana Cruz | 2023-09-01 04:33:49 +0000 |
---|---|---|
committer | Aviana Cruz | 2023-09-01 05:44:23 +0000 |
commit | 46672eba2415897322c919c6e16d1a26853c0c09 (patch) | |
tree | a7ee52cb6e711315ca90666679f1a50283d7ad6e | |
parent | 1a3c33c3e9c4c0b7c22ececa04ce68408ea26f5d (diff) | |
download | aur-46672eba2415897322c919c6e16d1a26853c0c09.tar.gz |
fix aarch64 build and hack XMapWindow for Wayland
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 26 | ||||
-rw-r--r-- | wrap.c | 25 |
3 files changed, 44 insertions, 11 deletions
@@ -1,7 +1,7 @@ pkgbase = wemeet-bin pkgdesc = Tencent Video Conferencing, tencent meeting 腾讯会议 pkgver = 3.15.1.400 - pkgrel = 3 + pkgrel = 4 url = https://source.meeting.qq.com/download-center.html arch = x86_64 arch = aarch64 @@ -36,7 +36,7 @@ pkgbase = wemeet-bin source = wemeet.sh source = wrap.c sha512sums = b1c4f8ad45153c7b243dfcbbbb10a1eb1b53983c67c6676d2999f11b41540885b9ffb974a6e330613b0134a93db35e1d116d9c782c1af8c518c9d72604a558af - sha512sums = 48e40dfaf425f096802bfff081a9a1a3122f1f677227f1dbe67cfb37cef7ab8fe6060258161c79b07cd559c4022de6cea42245400ccfd1eac8456c7b42260550 + sha512sums = bc2fdbf682ab888ba58a03d637ccc069d409e882c21266b2b1357ff246707f9084b6ca3b7dff256f0b6a5635b559c86b825fc4d3ab9874be00de332ca862e5e5 source_x86_64 = wemeet-3.15.1.400-x86_64.deb::https://updatecdn.meeting.qq.com/cos/174f137e819ba174c7be6949bb03e665/TencentMeeting_0300000000_3.15.1.400_x86_64_default.publish.deb sha512sums_x86_64 = 45998b34b06568f311d9779664be99ce6fe674aceb8188397201fe34e92bef0cfa95b33069186b26c184aa91b8997859f35ea3414b1786e7c8164c473563d490 source_aarch64 = wemeet-3.15.1.400-aarch64.deb::https://updatecdn.meeting.qq.com/cos/a7642088c0e903f1e7ac25f416e7a8e9/TencentMeeting_0300000000_3.15.1.400_arm64_default.publish.deb @@ -8,7 +8,7 @@ pkgver=3.15.1.400 _pkgver_arm=${pkgver} # 两个版本有时候不一样 _x86_md5=174f137e819ba174c7be6949bb03e665 _arm_md5=a7642088c0e903f1e7ac25f416e7a8e9 -pkgrel=3 +pkgrel=4 pkgdesc="Tencent Video Conferencing, tencent meeting 腾讯会议" arch=('x86_64' 'aarch64') license=('unknown') @@ -32,7 +32,7 @@ optdepends=( ) makedepends=('patchelf') sha512sums=('b1c4f8ad45153c7b243dfcbbbb10a1eb1b53983c67c6676d2999f11b41540885b9ffb974a6e330613b0134a93db35e1d116d9c782c1af8c518c9d72604a558af' - '48e40dfaf425f096802bfff081a9a1a3122f1f677227f1dbe67cfb37cef7ab8fe6060258161c79b07cd559c4022de6cea42245400ccfd1eac8456c7b42260550') + 'bc2fdbf682ab888ba58a03d637ccc069d409e882c21266b2b1357ff246707f9084b6ca3b7dff256f0b6a5635b559c86b825fc4d3ab9874be00de332ca862e5e5') sha512sums_x86_64=('45998b34b06568f311d9779664be99ce6fe674aceb8188397201fe34e92bef0cfa95b33069186b26c184aa91b8997859f35ea3414b1786e7c8164c473563d490') sha512sums_aarch64=('5fc6fb65a7d6c45bb544e775c0e1b20735994e0693ddb9007ee8d690f491bc0583ed2b73041c71b4d71c22452b828eeee2704288090f4821ce57239dbd9bfd3f') @@ -47,11 +47,15 @@ prepare() { popd pushd opt/$_pkgname - for res in 16 32 64 128 256; do - install -dm755 "$srcdir/usr/share/icons/hicolor/${res}x${res}/apps" - mv "icons/hicolor/${res}x${res}/mimetypes/${_pkgname}app.png" \ - "$srcdir/usr/share/icons/hicolor/${res}x${res}/apps/${_pkgname}app.png" - done + if [ -d 'icons' ]; then + for res in 16 32 64 128 256; do + install -dm755 "$srcdir/usr/share/icons/hicolor/${res}x${res}/apps" + mv "icons/hicolor/${res}x${res}/mimetypes/${_pkgname}app.png" \ + "$srcdir/usr/share/icons/hicolor/${res}x${res}/apps/${_pkgname}app.png" + done + else + echo 'icons directory not found' + fi rm bin/qt.conf patchelf --set-rpath /usr/lib/$_pkgname bin/wemeetapp @@ -82,8 +86,14 @@ package() { ln -s "/usr/bin/$_pkgname" "$pkgdir/usr/bin/$_pkgname-x11" install -Dm644 $_pkgname.svg -t "$pkgdir/usr/share/icons/hicolor/scalable/apps" - install -Dm755 lib/lib{bugly,crbase,desktop_common,ImSDK,nxui*,qt_*,service*,tms_*,ui*,wemeet*,xcast*,xnn*}.so \ + install -Dm755 lib/lib{crbase,desktop_common,ImSDK,nxui*,qt_*,service*,tms_*,ui*,wemeet*,xcast*,xnn*}.so \ -t "$pkgdir/usr/lib/$_pkgname" + if [ -f 'lib/libcrbase.so' ]; then + install -Dm755 lib/libcrbase.so -t "$pkgdir/usr/lib/$_pkgname" + else + echo 'lib/libcrbase.so not found' + fi + for lib in "$pkgdir/usr/lib/$_pkgname"/*; do patchelf --set-rpath '$ORIGIN' "$lib" done @@ -1,13 +1,19 @@ // by https://aur.archlinux.org/account/AvianaCruz +#include <X11/Xlibint.h> +#include <dlfcn.h> #include <openssl/ssl.h> +#include <stdlib.h> #ifdef WRAP_FORCE_SINK_HARDWARE -#include <dlfcn.h> #include <pulse/introspect.h> #include <pulse/subscribe.h> #include <string.h> #endif +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif + #ifdef SSL_get_peer_certificate #undef SSL_get_peer_certificate #endif @@ -16,6 +22,23 @@ X509 *SSL_get_peer_certificate(const SSL *s) { return SSL_get1_peer_certificate(s); } +// temporary hack for Wayland screen sharing crash +typedef int (*wrap_XMapWindow_t)(register Display *dpy, Window w); +static wrap_XMapWindow_t wrap_orig_XMapWindow; + +int XMapWindow(register Display *dpy, Window w) { + const char *env = getenv("XDG_SESSION_TYPE"); + if (env == NULL || strcmp(env, "wayland") != 0) { + if (!wrap_orig_XMapWindow) { + wrap_orig_XMapWindow = dlsym(RTLD_NEXT, "XMapWindow"); + } + + return wrap_orig_XMapWindow(dpy, w); + } + + return 1; +} + #ifdef WRAP_FORCE_SINK_HARDWARE typedef pa_operation *(*wrap_pa_get_sink_by_name_t)(pa_context *c, const char *name, |