stm32cubeprog

LOW
maintainer taotieren 12 votes scanned 2026-11-01 00:21:48.120785
View on AUR
Why flagged

The source is a legitimate STM32CubeProgrammer installer from STMicroelectronics' official cloudfront domain, used to build the package from the vendor's own release; the non-whitelisted host is a CDN, but the content is a verifiable official tool with a matching checksum.

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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The source is a legitimate STM32CubeProgrammer installer from STMicroelectronics' official cloudfront domain, used to build the package from the vendor's own release; the non-whitelisted host is a CDN, but the content is a verifiable official tool with a matching checksum.

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:35 "SetupSTM32CubeProgrammer_linux_64.zip::https://www.st.com/cloudfront/publish/stm32cubeprg-lin-v${pkgver//./-}/${pkgver}/en/SetupSTM32CubeProgrammer_linux_64.zip"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: yjun <jerrysteve1101@gmail.com>
2# Maintainer: Maik93 <michael.mugnai@gmail.com>
3# Maintainer: taotieren <admin@taotieren.com>
4# Maintainer: GPereira <goncalo_pereira@outlook.pt>
5# Maintainer: CloverGit <clovergit@hotmail.com>
6
7pkgname=stm32cubeprog
8pkgver=2.23.0
9pkgrel=4
10pkgdesc='An all-in-one multi-OS software tool for programming STM32 products.'
11arch=('x86_64')
12url='https://www.st.com/en/development-tools/stm32cubeprog.html'
13license=('custom:SLA0048')
14
15depends=(
16 'gtk3'
17 'libglvnd'
18)
19
20optdepends=(
21 'archlinux-java-run: System Java runtime for STM32CubeProgrammer (Wayland)'
22 'java-openjfx-bin: System JavaFX runtime for STM32CubeProgrammer (Wayland)'
23 'stlink: udev rules for ST-LINK devices'
24)
25
26makedepends=(
27 'gendesk'
28 'icoutils'
29)
30
31provides=('stm32cubeprogrammer')
32options=('!strip' '!debug')
33
34source=(
35 "SetupSTM32CubeProgrammer_linux_64.zip::https://www.st.com/cloudfront/publish/stm32cubeprg-lin-v${pkgver//./-}/${pkgver}/en/SetupSTM32CubeProgrammer_linux_64.zip"
36 'SLA0048_STM32CubeProg.pdf'
37 'STM32CubeProgrammer_Wayland'
38)
39
40sha256sums=('6a9e60a5a048c45eb3241f9bb66bdc2e6cbd0119fb2e42568dc059fc6167442a'
41 'c6d92c00dee63e0f4a54d8ea62f82a646243c3e1480142ae3e7f4ca5d77d5702'
42 '5a34b8b2345f1ef4dff221d8d529dc1ef78e3c1e1bfb86f35edaf865b2fc5b26')
43
44prepare() {
45 cd "${srcdir}"
46
47 chmod u+x jre/bin/java
48
49 gendesk -f -n \
50 --pkgname "${pkgname}" \
51 --pkgdesc "${pkgdesc}" \
52 --path "/opt/${pkgname}/bin" \
53 --name "STM32CubeProgrammer" \
54 --exec "/opt/${pkgname}/bin/STM32CubeProgrammer" \
55 --icon "${pkgname}" \
56 --categories "Development"
57
58 gendesk -f -n \
59 --pkgname "${pkgname}_wayland" \
60 --pkgdesc "${pkgdesc}" \
61 --path "/opt/${pkgname}/bin" \
62 --name "STM32CubeProgrammer (Wayland)" \
63 --exec "/opt/${pkgname}/bin/STM32CubeProgrammer_Wayland" \
64 --icon "${pkgname}" \
65 --categories "Development"
66
67 # STM32CubeMX also bundles a copy of STM32TrustedPackageCreator. However,
68 # UM2238 identifies it as part of the STM32CubeProgrammer tool set.
69 # Therefore, this package provides its public command wrappers and desktop entry,
70 # while the copy bundled with STM32CubeMX remains private to that package.
71 gendesk -f -n \
72 --pkgname "${pkgname}-trusted-package-creator" \
73 --pkgdesc "STM32 Trusted Package Creator" \
74 --path "/opt/${pkgname}/bin" \
75 --name "STM32 Trusted Package Creator" \
76 --exec "/opt/${pkgname}/bin/STM32TrustedPackageCreator" \
77 --icon "stm32trustedpackagecreator" \
78 --categories "Development"
79}
80
81build() {
82 cd "${srcdir}"
83
84 rm -rf build icon
85 mkdir -p build icon
86
87 ./jre/bin/java "-DINSTALL_PATH=${srcdir}/build" -jar "SetupSTM32CubeProgrammer-${pkgver}.exe" -options-system
88
89 icotool -x "build/util/Programmer.ico" -o "icon"
90 icotool -x "build/util/STM32TrustedPackageCreator.ico" -o "icon"
91}
92
93package() {
94 install -dm755 "${pkgdir}/opt/${pkgname}"
95 cp -a --no-preserve=ownership "${srcdir}/build/." "${pkgdir}/opt/${pkgname}"
96
97 # icons
98 for entry in \
99 'Programmer:stm32cubeprog' \
100 'STM32TrustedPackageCreator:stm32trustedpackagecreator'; do
101 prefix=${entry%%:*}
102 icon_name=${entry#*:}
103
104 for icon_file in "${srcdir}/icon/${prefix}_"*x32.png; do
105 size=${icon_file##*_}
106 size=${size%%x*}
107
108 install -Dm644 "${icon_file}" \
109 "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/${icon_name}.png"
110 done
111 done
112
113 # documentation
114 install -Dm644 "${pkgdir}/opt/${pkgname}/doc/Readme.txt" -t "${pkgdir}/usr/share/doc/${pkgname}"
115 install -Dm644 "${pkgdir}/opt/${pkgname}/doc/license.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}"
116 install -Dm644 "${srcdir}/SLA0048_STM32CubeProg.pdf" -t "${pkgdir}/usr/share/licenses/${pkgname}"
117
118 # desktop entries
119 install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
120 install -Dm644 "${srcdir}/${pkgname}_wayland.desktop" \
121 "${pkgdir}/usr/share/applications/${pkgname}_wayland.desktop"
122 install -Dm644 "${srcdir}/${pkgname}-trusted-package-creator.desktop" \
123 "${pkgdir}/usr/share/applications/${pkgname}-trusted-package-creator.desktop"
124
125 install -Dm755 "${srcdir}/STM32CubeProgrammer_Wayland" \
126 "${pkgdir}/opt/${pkgname}/bin/STM32CubeProgrammer_Wayland"
127
128 # command wrappers
129 for entry in \
130 'stm32cubeprogrammer:STM32CubeProgrammer' \
131 'stm32cubeprogrammer_wayland:STM32CubeProgrammer_Wayland' \
132 'stm32_programmer_cli:STM32_Programmer.sh' \
133 'stm32_keygen_cli:STM32_KeyGen_CLI' \
134 'stm32_signingtool_cli:STM32_SigningTool_CLI' \
135 'stm32trustedpackagecreator:STM32TrustedPackageCreator' \
136 'stm32trustedpackagecreator_cli:STM32TrustedPackageCreator_CLI'; do
137 wrapper_name=${entry%%:*}
138 target_name=${entry#*:}
139
140 install -Dm755 /dev/stdin "${pkgdir}/usr/bin/${wrapper_name}" <<EOF
141#!/bin/sh
142exec "/opt/${pkgname}/bin/${target_name}" "\$@"
143EOF
144 done
145
146 # remove unused installer components
147 rm -rf \
148 "${pkgdir}/opt/${pkgname}/updater" \
149 "${pkgdir}/opt/${pkgname}/.installationinformation"
150}
151# vim: set sw=2 ts=2 et:
152

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 00:21:48 Low 2
2026-10-31 00:07:41 Low 2
2026-10-30 00:29:30 Low 2
2026-10-29 00:13:55 Low 2
2026-10-28 00:06:54 Low 2
2026-10-27 00:23:28 Low 2
2026-10-26 00:12:40 Low 2
2026-10-25 00:20:48 Low 2
2026-10-24 00:14:55 Low 2
2026-10-23 00:02:19 Low 2
2026-10-22 00:13:10 Low 2
2026-10-21 00:12:50 Low 2
2026-10-20 00:10:31 Low 2
2026-10-19 00:03:55 Low 2
2026-10-18 00:06:55 Low 2
2026-10-17 00:21:55 Low 2
2026-10-16 00:12:47 Low 2
2026-10-15 00:28:05 Low 2
2026-10-14 00:06:47 Low 2
2026-10-13 00:23:45 Low 2

Report a package

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

0 / 4000
Your suggestion