todesk-bin
The package downloads a prebuilt .deb from a non-whitelisted host (dl.todesk.com), which is the project's official domain, but the checksum for the aarch64 source is hardcoded to version 4.8.5.1 while pkgver is 4.9.8.1, creating a version mismatch and potential supply-chain risk due to unverifiable binary content.
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:29
source_x86_64=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-amd64.deb")
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt .deb from a non-whitelisted host (dl.todesk.com), which is the project's official domain, but the checksum for the aarch64 source is hardcoded to version 4.8.5.1 while pkgver is 4.9.8.1, creating a version mismatch and potential supply-chain risk due to unverifiable binary content.
PKGBUILD
1 offending line(s) highlighted# Maintainer: yjun <jerrysteve1101 at gmail dot com>
# Maintainer: witt <1989161762 at qq dot com>
pkgname=todesk-bin
_pkgname=${pkgname%-bin}
_binaryname=ToDesk
pkgver=4.9.8.1
pkgrel=1
pkgdesc="Remote control and team work"
arch=('x86_64' 'aarch64')
url="https://www.todesk.com/"
license=('custom')
depends=('gtk3'
'libappindicator-gtk3'
'noto-fonts-cjk')
makedepends=('wget' 'tar')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
# !strip: strip could generate error.
# --->
# strip: error: the input file './opt/todesk/bin/todesk' has no sections
# strip: error: the input file './opt/todesk/bin/todeskd' has no sections
#
# emptydirs: leave /opt/todesk/config empty dir
options=('!strip' 'emptydirs')
DLAGENTS=("https::/usr/bin/wget -U 'Mozilla' -O %o %u")
install="${_pkgname}.install"
source=('license.html')
source_x86_64=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-amd64.deb")
source_aarch64=("https://dl.todesk.com/linux/${_pkgname}-v4.8.5.1-arm64.deb")
source_armv7h=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-armv7l.deb")
sha256sums=('402b2db2586c723af990beb0f96249b9680880f4f30e58a7cbe7cbd20b979a0b')
sha256sums_x86_64=('a257916c32ca792826dd1027596395278259050fee42ca8fd0a0aaa8851940e1')
sha256sums_aarch64=('0c3a78f52df7b2d7877f05cb0ed9a112607be5976e09c01527cacfe3fb8dc2fc')
_install() {
find ${@: 2} -type f -exec install -Dm$1 {} ${pkgdir}/{} \;
}
build() {
mkdir -p "${srcdir}/build"
# 4.9.7.0 起上游把 data.tar.zst 换成了 data.tar.xz,这里不再写死压缩格式
local _data
for _data in "${srcdir}"/data.tar.*; do
tar -xf "${_data}" -C "${srcdir}/build"
done
}
package() {
cd ${srcdir}/build/
# binary wrapper
install -Dm755 usr/local/bin/${_pkgname} -t ${pkgdir}/usr/bin/
# binary & scripts
install -Dm755 opt/${_pkgname}/bin/${_binaryname}{,_Service,_Session} -t ${pkgdir}/opt/${_pkgname}/bin
install -Dm755 opt/${_pkgname}/bin/CrashReport -t ${pkgdir}/opt/${_pkgname}/bin
# lib
# bundled libaray for hardware video encode
cp -a opt/${_pkgname}/bin/*.so* ${pkgdir}/opt/${_pkgname}/bin/
# _install 644 opt/${_pkgname}/bin -name libzrtc.so
# 4.9.8.1 起上游新增 opt/todesk/lib:系统缺失时提供 xcb / pipewire 兜底库,
# 由 todesk.install 在 post_install 里按需软链到 bin/(RPATH=$ORIGIN)
cp -a opt/${_pkgname}/lib ${pkgdir}/opt/${_pkgname}/
# icon
# find opt/${_pkgname}/res -maxdepth 1 -type f -exec install -Dm644 {} ${pkgdir}/{} \;
_install 644 opt/${_pkgname}/res -maxdepth 1
# config
# empty dir
install -dm755 ${pkgdir}/opt/${_pkgname}/config
# desktop entry
install -Dm644 usr/share/applications/${_pkgname}.desktop -t ${pkgdir}/usr/share/applications
# systemd service
install -Dm644 etc/systemd/system/${_pkgname}d.service -t ${pkgdir}/usr/lib/systemd/system
# icon
# find usr/share/icons -type f -exec install -Dm644 {} ${pkgdir}/{} \;
_install 644 usr/share/icons
# license
install -Dm644 ${srcdir}/license.html -t ${pkgdir}/usr/share/licenses/${pkgname}/
}
# vim: set sw=2 ts=2 et:
Changes since previous scan
--- PKGBUILD @ 2026-11-01 00:21+++ PKGBUILD @ 2026-11-01 16:01@@ -4,7 +4,7 @@ pkgname=todesk-bin _pkgname=${pkgname%-bin} _binaryname=ToDesk-pkgver=4.9.7.0+pkgver=4.9.8.1 pkgrel=1 pkgdesc="Remote control and team work" arch=('x86_64' 'aarch64')@@ -30,7 +30,7 @@ source_aarch64=("https://dl.todesk.com/linux/${_pkgname}-v4.8.5.1-arm64.deb") source_armv7h=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-armv7l.deb") sha256sums=('402b2db2586c723af990beb0f96249b9680880f4f30e58a7cbe7cbd20b979a0b')-sha256sums_x86_64=('e6aee6f7fecd67a9bcec00b763afa2e2b663c5b9b9375db9d60a9081c09acf4b')+sha256sums_x86_64=('a257916c32ca792826dd1027596395278259050fee42ca8fd0a0aaa8851940e1') sha256sums_aarch64=('0c3a78f52df7b2d7877f05cb0ed9a112607be5976e09c01527cacfe3fb8dc2fc') _install() {@@ -62,6 +62,10 @@ cp -a opt/${_pkgname}/bin/*.so* ${pkgdir}/opt/${_pkgname}/bin/ # _install 644 opt/${_pkgname}/bin -name libzrtc.so + # 4.9.8.1 起上游新增 opt/todesk/lib:系统缺失时提供 xcb / pipewire 兜底库,+ # 由 todesk.install 在 post_install 里按需软链到 bin/(RPATH=$ORIGIN)+ cp -a opt/${_pkgname}/lib ${pkgdir}/opt/${_pkgname}/+ # icon # find opt/${_pkgname}/res -maxdepth 1 -type f -exec install -Dm644 {} ${pkgdir}/{} \; _install 644 opt/${_pkgname}/res -maxdepth 1Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 16:01:05 | Medium | 2 |
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 05:23:55 | Medium | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |