summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAviana Cruz2023-09-01 04:33:49 +0000
committerAviana Cruz2023-09-01 05:44:23 +0000
commit46672eba2415897322c919c6e16d1a26853c0c09 (patch)
treea7ee52cb6e711315ca90666679f1a50283d7ad6e
parent1a3c33c3e9c4c0b7c22ececa04ce68408ea26f5d (diff)
downloadaur-46672eba2415897322c919c6e16d1a26853c0c09.tar.gz
fix aarch64 build and hack XMapWindow for Wayland
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD26
-rw-r--r--wrap.c25
3 files changed, 44 insertions, 11 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 7cc5bc58b743..c429ed2f6864 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 847064e792a1..273492d7d948 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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
diff --git a/wrap.c b/wrap.c
index fdcfa369e5ad..65da36211f91 100644
--- a/wrap.c
+++ b/wrap.c
@@ -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,