wemeet-bin
The package downloads prebuilt .deb binaries from a non-standard, non-whitelisted host (updatecdn.meeting.qq.com) which is not a common open-source forge; while likely official, the unverifiable prebuilt binaries present a supply-chain risk if the host were compromised or subverted.
Triggered rules
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:16
source_x86_64=("${_pkgname}-${pkgver}-x86_64.deb::https://updatecdn.meeting.qq.com/cos/${_x86_md5}/TencentMeeting_0300000000_${pkgver}_x86_64_default.publish.deb"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads prebuilt .deb binaries from a non-standard, non-whitelisted host (updatecdn.meeting.qq.com) which is not a common open-source forge; while likely official, the unverifiable prebuilt binaries present a supply-chain risk if the host were compromised or subverted.
PKGBUILD
1 offending line(s) highlighted# Maintainer: sukanka<su975853527[AT]gmail.com>
# Contributor: Sam L. Yes <samlukeyes123 at gmail dot com>
_pkgname=wemeet
pkgname=$_pkgname-bin
provides=('wemeet' 'tencent-meeting')
pkgver=3.26.10.401
_pkgver_arm=3.26.10.401
_x86_md5=72e0e0023e1d1e6d4123fba28821aea1
_arm_md5=c06d6bc4a3370dbfb2f43bbc6ff8969e
pkgrel=5
pkgdesc="Tencent Video Conferencing, tencent meeting 腾讯会议"
arch=('x86_64' 'aarch64')
license=('unknown')
url="https://source.meeting.qq.com/download-center.html"
source_x86_64=("${_pkgname}-${pkgver}-x86_64.deb::https://updatecdn.meeting.qq.com/cos/${_x86_md5}/TencentMeeting_0300000000_${pkgver}_x86_64_default.publish.deb"
)
source_aarch64=("${_pkgname}-${_pkgver_arm}-aarch64.deb::https://updatecdn.meeting.qq.com/cos/${_arm_md5}/TencentMeeting_0300000000_${_pkgver_arm}_arm64_default.publish.deb")
source=("${_pkgname}".sh 'wrap.c')
depends=(
# most deps are not used, but kept for a
bash
qt5-x11extras libxinerama
libpulse # 无 pulseaudio 无法连接到系统音频
# dependencies detected by namcap
gcc-libs qt5-declarative libglvnd libxfixes alsa-lib openssl
libxrandr libxext libx11 hicolor-icon-theme glibc zlib libxcomposite
qt5-base systemd-libs libxdamage qt5-svg
libyuv
)
optdepends=(
'qt5-wayland: Wayland support'
'bubblewrap: Fix abnormal text color in dark mode and prevent messing files.'
)
makedepends=('patchelf')
sha512sums=('5d70007528b4b4dfbedecf09d76bc1859e1b34479f6239fd378bc5a12711ff5b22919f312e66aac758799b709a64bd2964c4a53be25829738aa6d1195d871f5a'
'f98e9ae5842c05a19ad4f883c8f9d88ef3b64e04b034e7fd8b23ddca81510f0bd38688ad7c63ddf8badaa727a7b599ceede87419e9694c06d7a4b06138b94c15')
sha512sums_x86_64=('acaa1eba8eccd3a5bd4cb57dc0fadce5c33950857677783944ac2bfbefbed927ca3b4b7d9d0c9e864dcdc3b9f9f8a359c456e9b63b38ac0fa9436fc336aa9ea7')
sha512sums_aarch64=('6fb54c4972b6ebaf8e1ce576b4ea075ec1b1cd5d02702feef5382712a8bafc2ff85cbd6ab43c90e6e6c55627da77ecc1c8c58f4154e0a160247387f5b2972abc')
# strip了反而变大
options=(!strip)
prepare() {
cd "$srcdir"
tar xpf data.tar.xz
pushd usr/share/applications
sed -i 's|^Exec=.*|Exec=wemeet %u|g;s|^Icon=.*|Icon=wemeet|g' ${_pkgname}app.desktop
sed -i '$i Comment=Tencent Meeting Linux Client\nComment[zh_CN]=腾讯会议Linux客户端\nKeywords=wemeet;tencent;meeting;' \
"$srcdir/usr/share/applications/wemeetapp.desktop"
popd
pushd opt/$_pkgname
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
sed -i "s|^Prefix.*|Prefix = /usr/lib/wemeet|" bin/qt.conf
patchelf --set-rpath '$ORIGIN:/usr/lib/wemeet' bin/wemeetapp
popd
pushd opt/$_pkgname/bin
find modules/ -type f -name '*.so' | xargs -I {} patchelf --set-rpath '$ORIGIN:/usr/lib/wemeet' {}
popd
}
build() {
cd "$srcdir"
read -ra openssl_args < <(pkgconf --libs openssl)
read -ra libpulse_args < <(pkgconf --cflags --libs libpulse)
# Comment out `-D WRAP_FORCE_SINK_HARDWARE` to disable the patch that forces wemeet detects sink as hardware sink
"${CC:-cc}" $CFLAGS -Wall -Wextra -fPIC -shared "${openssl_args[@]}" "${libpulse_args[@]}" -o libwemeetwrap.so wrap.c -D WRAP_FORCE_SINK_HARDWARE
}
package() {
cd "$srcdir"
cp -r usr "$pkgdir"
cd opt/$_pkgname
install -Dm755 "$srcdir/$_pkgname.sh" "$pkgdir/usr/bin/$_pkgname"
ln -s "/usr/bin/$_pkgname" "$pkgdir/usr/bin/$_pkgname-x11"
install -Dm644 $_pkgname.svg -t "$pkgdir/usr/share/icons/hicolor/scalable/apps"
# libbugly is not likely to be necessary
install -Dm755 lib/lib{desktop_common,crash_guard,ImSDK,nxui*,qt_*,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
# copy Qt
cp -r plugins resources translations "$pkgdir/usr/lib/$_pkgname"
cp -a lib/lib{Qt,icu}* "$pkgdir/usr/lib/$_pkgname"
find "$pkgdir/usr/lib/$_pkgname" -type f -name '*.so*' | xargs -I {} patchelf --set-rpath '$ORIGIN:/usr/lib/wemeet' {}
install -dm755 "$pkgdir/opt/$_pkgname"
cp -r bin "$pkgdir/opt/$_pkgname"
ln -s raw/xcast.conf "$pkgdir/opt/$_pkgname/bin/xcast.conf"
install -Dm755 "$srcdir/libwemeetwrap.so" -t "$pkgdir/usr/lib/$_pkgname"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |