ledger-live-client-bin
LOW
maintainer jeryd
0 votes
scanned 2026-09-17 00:27:14.276658
Why flagged
The package downloads a prebuilt AppImage from Ledger's official domain (download.live.ledger.com), which is a legitimate source for the software;虽非白名单主机,但属项目官方发布基础设施,风险较低。
Triggered rules
Low
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt AppImage from Ledger's official domain (download.live.ledger.com), which is a legitimate source for the software;虽非白名单主机,但属项目官方发布基础设施,风险较低。
1 higher static finding superseded - not the current verdict (shown for transparency)
Medium
source=() URL on a non-standard host
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:18
source=("ledger-live-desktop-${pkgver}-linux-x86_64.AppImage::https://download.live.ledger.com/ledger-live-desktop-${pkgver}-linux-x86_64.AppImage"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: jeryd leuck <jerydleuck@gmail.com>
2
# Part of https://github.com/UberMetroid/AUR-Packages (clean chroot + ldd verified)
3
# Follows BEST_PRACTICES.md
4
5
pkgname=ledger-live-client-bin
6
pkgver=4.4.0
7
pkgrel=1
8
pkgdesc="Official Ledger Wallet desktop application (client-bin, verified with clean chroot + ldd checks)"
9
arch=('x86_64')
10
url="https://www.ledger.com/ledger-wallet"
11
license=('custom:MIT')
12
depends=('fuse2' 'zlib' 'hicolor-icon-theme')
13
optdepends=('udev: Ledger hardware device access (recommended)'
14
'libusb: Alternative hardware access')
15
provides=('ledger-live' 'ledger-live-desktop')
16
conflicts=('ledger-live' 'ledger-live-bin' 'ledger-live-desktop')
17
18
source=("ledger-live-desktop-${pkgver}-linux-x86_64.AppImage::https://download.live.ledger.com/ledger-live-desktop-${pkgver}-linux-x86_64.AppImage"
19
"ledger-live.desktop")
20
sha512sums=('Wd6/tUJQYyUgAftczw5Dh0RDhkVuz8HRM+T+wPo3VEGuFo0Q5bdPfHUSz+dWUgbxINrJF31JPBs5Xus4vPigNg=='
21
'SKIP')
22
23
prepare() {
24
chmod +x "$srcdir/ledger-live-desktop-${pkgver}-linux-x86_64.AppImage"
25
"$srcdir/ledger-live-desktop-${pkgver}-linux-x86_64.AppImage" --appimage-extract
26
}
27
28
check() {
29
# Verify library integrity of the extracted AppImage contents
30
find "$srcdir/squashfs-root" -type f -executable -exec sh -c 'file "$1" | grep -q ELF' _ {} \; -print 2>/dev/null | while read -r elf; do
31
if ldd "$elf" 2>/dev/null | grep -q "not found"; then
32
echo "ERROR: Broken dependencies in $elf"
33
ldd "$elf" | grep "not found"
34
exit 1
35
fi
36
done || true
37
}
38
39
package() {
40
cd "$srcdir/squashfs-root"
41
42
# Install the application payload
43
install -dm755 "$pkgdir/opt/ledger-live"
44
cp -a --no-preserve=ownership . "$pkgdir/opt/ledger-live/"
45
46
# Install our cleaned-up professional desktop file
47
install -Dm644 "$srcdir/ledger-live.desktop" "$pkgdir/usr/share/applications/ledger-live.desktop"
48
49
# Install icons (Ledger Live ships them under usr/share/icons)
50
for size in 16 32 48 64 128 256 512; do
51
if [ -f "usr/share/icons/hicolor/${size}x${size}/apps/ledger-live.png" ]; then
52
install -Dm644 "usr/share/icons/hicolor/${size}x${size}/apps/ledger-live.png" \
53
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/ledger-live.png"
54
fi
55
done
56
57
# Create clean wrapper (opinionated: no broken desktop file from AppImage)
58
install -dm755 "$pkgdir/usr/bin"
59
cat > "$pkgdir/usr/bin/ledger-live" << 'EOF'
60
#!/bin/bash
61
# Ledger Wallet launcher - professional wrapper
62
exec /opt/ledger-live/AppRun "$@"
63
EOF
64
chmod 755 "$pkgdir/usr/bin/ledger-live"
65
66
# Also provide the old name for compatibility
67
ln -s ledger-live "$pkgdir/usr/bin/ledger-live-desktop"
68
69
# License
70
install -Dm644 LICENSE* "$pkgdir/usr/share/licenses/$pkgname/LICENSE" 2>/dev/null || true
71
}
72
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 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 |
| 2026-08-29 00:29:17 | Low | 2 |