ledger-live-client-bin
maintainer jeryd
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
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-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |