sunloginclient
The package downloads a prebuilt .deb from a non-whitelisted but plausibly official host (down.oray.com), which is unpacked and installed; while the host is not on a standard whitelist, it belongs to the vendor (oray.com), and the checksum is provided for the binary payload, reducing risk, but the source is a prebuilt executable with a SKIP'd checksum on the license file, constituting a moderate supply-chain risk.
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:24
'LICENSE::https://service.oray.com/question/1820.html') -
PKGBUILD:25
source_x86_64=("https://down.oray.com/sl/linux/${_debname}-${pkgver}-x86_64.deb")
llm_review
An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt .deb from a non-whitelisted but plausibly official host (down.oray.com), which is unpacked and installed; while the host is not on a standard whitelist, it belongs to the vendor (oray.com), and the checksum is provided for the binary payload, reducing risk, but the source is a prebuilt executable with a SKIP'd checksum on the license file, constituting a moderate supply-chain risk.
PKGBUILD
2 offending line(s) highlighted# Maintainer: yjun <jerrysteve1101 at gmail dot com>
# Maintainer: zhullyb <zhullyb at outlook dot com>
# Maintainer: TimWcx <timwcx at qq dot com>
pkgname=sunloginclient
_pkgname=awesun
_debname=awesun
pkgver=16.5.0.30560
pkgrel=10
pkgdesc="Proprietary software that supports remote control of mobile devices, Windows, Mac, Linux and other systems.(GUI version)"
arch=("x86_64")
url="https://sunlogin.oray.com"
depends=("gtk3"
'libnotify'
'libepoxy'
'libappindicator-gtk3'
'webkit2gtk-4.1'
'util-linux-libs'
'libcrypt.so=1-64')
license=('custom')
provides=('sunlogin'
'awesun')
source=("runsunloginclient.service"
'LICENSE::https://service.oray.com/question/1820.html')
source_x86_64=("https://down.oray.com/sl/linux/${_debname}-${pkgver}-x86_64.deb")
install="${pkgname}.install"
options=(!strip emptydirs)
sha256sums=('31a15b3da81917f13eab0e34a2ea7fb50b33af20e6cebf3779f188571d459501'
'SKIP')
sha256sums_x86_64=('eda3fffe6d5324afbc4f939f0cb85c08b7851efad3c01878621474ec7503d10f')
_opt_path="/opt/${_pkgname}"
_orig_path="/usr/local/${_pkgname}"
build() {
mkdir -p build
tar -xf data.tar.xz -C build
}
package() {
cd build
# install the whole awesun tree (bin/ lib/ data/ scripts/ + launcher)
install -dm755 "${pkgdir}/opt"
cp -a "usr/local/${_pkgname}" "${pkgdir}/opt/"
# relocate the hardcoded /usr/local/awesun prefix to /opt/awesun in every file
local _pad_path="///////opt/${_pkgname}"
while IFS= read -r -d '' _f; do
sed -i "s#${_orig_path}#${_pad_path}#g" "$_f"
done < <(grep -RslZ "${_orig_path}" "${pkgdir}${_opt_path}")
# relocate paths in the helper scripts (plain text)
sed -i "s#${_pad_path}#${_opt_path}#g" "${pkgdir}${_opt_path}/scripts/"*
# oray config file
install -Dm644 /dev/null "${pkgdir}/etc/orayconfig.conf"
# system service
install -Dm644 "${srcdir}/run${pkgname}.service" \
-t "${pkgdir}/usr/lib/systemd/system/"
# runtime log dir (matches upstream postinst)
install -dm777 "${pkgdir}/var/log/${_pkgname}"
# desktop entry
install -Dm644 "usr/share/applications/${_pkgname}.desktop" \
-t "${pkgdir}/usr/share/applications/"
sed -i -e "s#Exec=${_orig_path}/awesun#Exec=${_opt_path}/awesun#g" \
-e "s#Icon=${_orig_path}/awesun.png#Icon=${pkgname}#g" \
"${pkgdir}/usr/share/applications/${_pkgname}.desktop"
# icon
install -Dm644 "usr/local/${_pkgname}/awesun.png" \
"${pkgdir}/usr/share/pixmaps/${pkgname}.png"
# launcher symlinks
install -dm755 "${pkgdir}/usr/bin"
ln -sf "${_opt_path}/awesun" "${pkgdir}/usr/bin/${pkgname}"
ln -sf "${_opt_path}/awesun" "${pkgdir}/usr/bin/${_pkgname}"
# license
install -Dm644 "${srcdir}/LICENSE" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
# vim: ts=2 sw=2 et:
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 |