flasher-software-and-documentation

LOW
maintainer taotieren 0 votes scanned 2026-10-22 09:38:28.586742
View on AUR
Why flagged

Downloads prebuilt binaries from segger.com, which is the official SEGGER vendor domain, using a custom DLAGENT to simulate browser-based license acceptance; this is a standard pattern for proprietary embedded tools and not a supply-chain risk, though the package installs unverified vendor binaries directly into /opt.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Low AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (anthropic/claude-sonnet-4.6) reviewed the full PKGBUILD and judged it LOW (confidence 80%): Downloads prebuilt binaries from segger.com, which is the official SEGGER vendor domain, using a custom DLAGENT to simulate browser-based license acceptance; this is a standard pattern for proprietary embedded tools and not a supply-chain risk, though the package installs unverified vendor binaries directly into /opt.

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:14 source_x86_64=("Flasher_Linux_${pkgver/./}_x86_64.tgz::https://www.segger.com/downloads/flasher/Flasher_Linux_V${pkgver/./}_x86_64.tgz")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: taotieren <admin@taotieren.com>
2
3pkgname=flasher-software-and-documentation
4pkgver=9.86
5pkgrel=1
6pkgdesc="Segger Flasher Software and Documentation Pack for Linux"
7arch=('x86_64' 'aarch64')
8license=('custom')
9# groups=('flasher')
10depends=(
11 libgcc
12 libstdc++
13)
14source_x86_64=("Flasher_Linux_${pkgver/./}_x86_64.tgz::https://www.segger.com/downloads/flasher/Flasher_Linux_V${pkgver/./}_x86_64.tgz")
15source_aarch64=("Flasher_Linux_${pkgver/./}_arm64.tgz::https://www.segger.com/downloads/flasher/Flasher_Linux_V${pkgver/./}_arm64.tgz")
16source=("Flasher.svg")
17sha256sums=('debad3e258c6fca6b7c58dbe711eee366eeef0e0f021eee4810281e93afa758b')
18sha256sums_x86_64=('e3bd9378bd6a0569bea027aaa507352f9829ba362a78b69609fc4c2bdeea3ad0')
19sha256sums_aarch64=('5808535584a5b5a19f84e213a3363917968c753ae3048c3b09b1530b2c0f5658')
20install=$pkgname.install
21url="https://www.segger.com/program-embedded-systems/"
22conflicts=("${pkgname}" "j-link-software-and-documentation")
23replaces=("${pkgname}" "j-link-software-and-documentation")
24conflicts=("${pkgname}")
25replaces=("${pkgname}")
26DLAGENTS=("https::/usr/bin/env curl -A Mozilla/5.0(Linuxx86_64;rv:120.0)Gecko/20100101Firefox/120.0 -e https://www.segger.com/downloads/flasher/ -o %o -d accept_license_agreement=accepted -d non_emb_ctr=confirmed")
27options=(!strip)
28
29prepare() {
30 # Change src path name
31 if [ ${CARCH} = "x86_64" ]; then
32 mv Flasher_Linux_V${pkgver/./}_x86_64 Flasher
33 fi
34 if [ ${CARCH} = "aarch64" ]; then
35 mv Flasher_Linux_V${pkgver/./}_arm64 Flasher
36 fi
37}
38
39package(){
40 # Match package placement from their .deb, in /opt
41 install -dm755 "${pkgdir}/opt/SEGGER/Flasher" \
42 "${pkgdir}/usr/share/licenses/${pkgname}" \
43 "${pkgdir}/usr/lib/" \
44 "${pkgdir}/usr/bin/" \
45 "${pkgdir}/usr/lib/udev/rules.d/" \
46 "${pkgdir}/usr/share/doc/${pkgname}/" \
47 "${pkgdir}/usr/share/pixmaps" \
48 "${pkgdir}/usr/share/applications"
49
50 install -Dm644 "Flasher.svg" -t "${pkgdir}/usr/share/pixmaps/"
51
52 cd "${srcdir}/Flasher"
53
54 # Bulk copy everything
55 cp --preserve=mode -r J* *Flasher* Doc Devices_* DevProExe Script Samples ETC README.txt Firmwares lib* "${pkgdir}/opt/SEGGER/Flasher"
56
57 # Create links where needed
58 ln -s /opt/SEGGER/Flasher/Doc/LicenseIncGUI.txt "${pkgdir}/usr/share/licenses/${pkgname}/"
59 sed -i -e 's/dialout/uucp/g' \
60 -e 's/MODE="0666"/TAG+="uaccess"/' 99-flasher.rules
61 install -Dm644 99-flasher.rules -t "${pkgdir}/usr/lib/udev/rules.d/"
62
63 # Flasher executables: create /usr/bin symlink + XDG desktop entry
64 local exes=(
65 FlasherConfigExe
66 FlasherControlExe
67 FlasherDeployerExe
68 FlasherRunExe
69 FlasherTerminalExe
70 FlasherUSBWebServerExe
71 UniversalFlasherCLExe
72 UniversalFlasherExe
73 DevProExe
74 JFlashExe
75 JFlashSPIExe
76 JLinkGUIServerExe
77 JLinkRegistrationExe
78 JTAGLoadExe
79 )
80 for exe in "${exes[@]}"; do
81 ln -sf "/opt/SEGGER/Flasher/${exe}" "${pkgdir}/usr/bin/${exe}"
82 install -vDm644 /dev/stdin "${pkgdir}/usr/share/applications/${exe}.desktop" <<EOF
83[Desktop Entry]
84Version=1.0
85Type=Application
86Name=Segger ${exe}
87Comment=Segger ${exe} for Linux
88Exec=${exe}
89Icon=Flasher
90Terminal=false
91StartupNotify=false
92Categories=Development
93EOF
94 done
95
96 for f in Doc/*; do
97 ln -s /opt/SEGGER/Flasher/"$f" "${pkgdir}/usr/share/doc/${pkgname}"
98 done
99}
100

Scan history

Scanned at (UTC)SeverityRules
2026-10-22 09:38:28 Low 3
2026-10-22 09:34:24 Medium 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion