longbridge-bin
The package downloads a prebuilt .deb from a non-whitelisted but project-plausibly-owned host (assets.lbctrl.com) and extracts it; while the source is not verifiable from upstream source code, it is a standard packaging practice for binary-only applications and does not involve executing untrusted scripts or exfiltration.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt .deb from a non-whitelisted but project-plausibly-owned host (assets.lbctrl.com) and extracts it; while the source is not verifiable from upstream source code, it is a standard packaging practice for binary-only applications and does not involve executing untrusted scripts or exfiltration.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:23
source=("https://assets.lbctrl.com/github/release/longbridge-desktop/stable/longbridge-v${pkgver}-linux-x86_64.deb")
PKGBUILD
1 offending line(s) highlighted# Maintainer: rzhli
pkgname=longbridge-bin
pkgver=0.19.1
pkgrel=1
pkgdesc="Longbridge Desktop trading platform"
arch=("x86_64")
url="https://longbridge.com/desktop/"
license=("custom")
depends=(
"glibc"
"gtk3"
"nss"
"alsa-lib"
"libxss"
"libxtst"
"xdg-utils"
"libxcrypt-compat"
"webkit2gtk-4.1"
)
provides=("longbridge")
conflicts=("longbridge")
options=('!strip')
source=("https://assets.lbctrl.com/github/release/longbridge-desktop/stable/longbridge-v${pkgver}-linux-x86_64.deb")
sha256sums=('863b2e440095a3cda387cee3fbcc79bc0caf08182f855eb1a9609463fcb79f03')
prepare() {
cd "$srcdir"
# 清理并创建解压目录
rm -rf ext
mkdir -p ext
# 提取 deb 中的 data.tar.*
bsdtar -xf data.tar.* -C ext
# 调试:查看实际文件结构
echo "=== 检查 DEB 包结构 ==="
find ext -type f | head -20
}
package() {
cd "$srcdir/ext"
# ========================================
# 1. 复制所有文件到标准位置
# ========================================
# 主要文件在 usr/ 下,直接复制整个目录
if [[ -d "usr" ]]; then
cp -a usr "$pkgdir/"
fi
# 如果还有 usr/local,也迁移到 usr
if [[ -d "usr/local" ]]; then
mkdir -p "$pkgdir/usr"
cp -a usr/local/* "$pkgdir/usr/"
fi
# ========================================
# 2. 修复桌面文件
# ========================================
local _desktop="$pkgdir/usr/share/applications/longbridge-desktop.desktop"
if [[ -f "$_desktop" ]]; then
# 修复 TryExec 为绝对路径
sed -i "s|^TryExec=.*|TryExec=/usr/bin/longbridge|g" "$_desktop"
# 修复 Exec - 不添加任何参数,让程序自己处理
sed -i "s|^Exec=.*|Exec=/usr/bin/longbridge %U|g" "$_desktop"
# 确保图标正确 (与 hicolor 中的 longbridge-desktop.png 对应)
sed -i "s|^Icon=.*|Icon=longbridge-desktop|g" "$_desktop"
# 修复类别 - 改为网络/互联网类别
if grep -q "^Categories=" "$_desktop"; then
sed -i "s|^Categories=.*|Categories=Network;Finance;|g" "$_desktop"
else
echo "Categories=Network;Finance;" >> "$_desktop"
fi
# 确保其他必需字段存在
if ! grep -q "^Terminal=" "$_desktop"; then
echo "Terminal=false" >> "$_desktop"
fi
if ! grep -q "^Type=" "$_desktop"; then
echo "Type=Application" >> "$_desktop"
fi
if ! grep -q "^StartupNotify=" "$_desktop"; then
sed -i "s|^StartupNotify=.*|StartupNotify=true|g" "$_desktop"
fi
else
error "桌面文件不存在: $_desktop"
return 1
fi
# ========================================
# 3. 主程序在 /usr/lib/longbridge-desktop/ 下,
# 创建 /usr/bin/longbridge 符号链接
# ========================================
local _bin="$pkgdir/usr/lib/longbridge-desktop/longbridge"
if [[ -f "$_bin" ]]; then
chmod +x "$_bin"
mkdir -p "$pkgdir/usr/bin"
ln -s /usr/lib/longbridge-desktop/longbridge "$pkgdir/usr/bin/longbridge"
else
error "未找到主程序 /usr/lib/longbridge-desktop/longbridge"
return 1
fi
# ========================================
# 4. 许可证文件
# ========================================
find . -name "copyright" -exec install -Dm644 {} "$pkgdir/usr/share/licenses/$pkgname/LICENSE" \; || true
}
post_install() {
echo "正在更新桌面数据库..."
update-desktop-database -q
echo "正在更新图标缓存..."
gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor || true
echo ""
echo "Longbridge 安装完成!"
echo "如果图标未显示,请尝试:"
echo " 1. 注销并重新登录"
echo " 2. 运行: gtk-update-icon-cache -f /usr/share/icons/hicolor"
echo ""
}
post_upgrade() {
post_install
}
post_remove() {
update-desktop-database -q
gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor || true
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 03:20:13 | Medium | 1 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |