loxone-config-bin
maintainer VBen
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads a prebuilt Windows installer from the official vendor's update domain, which is plausibly the project's own release infrastructure; the binary is then installed via Wine, which is expected behavior for this type of package.
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 Windows installer from the official vendor's update domain, which is plausibly the project's own release infrastructure; the binary is then installed via Wine, which is expected behavior for this type of package.
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:17
"LoxoneConfigSetup_${_urlver}.zip::https://updatefiles.loxone.com/LoxConfig/LoxoneConfigSetup_${_urlver}.zip"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: VBen <devel@velmeden.info>
2
pkgname=loxone-config-bin
3
pkgver=17.1.6.30
4
pkgrel=2
5
pkgdesc="Loxone Config - home automation configuration software (Wine)"
6
arch=('x86_64')
7
url="https://www.loxone.com"
8
license=('LicenseRef-Loxone-Proprietary')
9
depends=('wine' 'wine-mono')
10
makedepends=('xorg-server-xvfb' 'icoutils')
11
options=('!strip' 'emptydirs')
12
13
# Version format in download URL: 17.1.6.30 -> 17000331 (each part zero-padded to 2 digits)
14
_urlver=17010630
15
16
source=(
17
"LoxoneConfigSetup_${_urlver}.zip::https://updatefiles.loxone.com/LoxConfig/LoxoneConfigSetup_${_urlver}.zip"
18
"loxone-config.sh"
19
"loxone-config.desktop"
20
"loxone-monitor.sh"
21
"loxone-monitor.desktop"
22
)
23
sha256sums=('a8d8a32ddc11ccae2988a62333beaf5997d9ba518967a69a2d659cc7f02f3498'
24
'3def05431934b75dbda853eef3ec62659249c0194f7337751946d08de8d5954b'
25
'3ff9c4f99a924d74e3240dba49fbdce737113e1072f9f7aadf6d9fe6c76260b1'
26
'bd0052ac963c24524d2ebe4c3e0955713a4b0faa08439f497f2bb536825d8217'
27
'243f3787f9f42a5136aacad473f7a805cd7e0a8b96016ba73124748328bd45e8')
28
29
build() {
30
export WINEPREFIX="${srcdir}/wine-prefix"
31
export WINEDEBUG=-all
32
33
Xvfb :99 -screen 0 1024x768x24 &>/dev/null &
34
local _xvfb_pid=$!
35
export DISPLAY=:99
36
37
wineboot --init 2>/dev/null
38
wine "${srcdir}/LoxoneConfigSetup.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-
39
wineserver -w
40
41
kill "${_xvfb_pid}" 2>/dev/null || true
42
wait "${_xvfb_pid}" 2>/dev/null || true
43
}
44
45
package() {
46
local _prefix="${srcdir}/wine-prefix/drive_c"
47
48
# Installer uses "Program Files" on win32 prefix
49
local _appdir
50
_appdir=$(find "${_prefix}" -maxdepth 4 -name "LoxoneConfig.exe" -printf '%h\n' | head -1)
51
if [[ -z "${_appdir}" ]]; then
52
error "LoxoneConfig.exe not found after installation. Installation may have failed."
53
return 1
54
fi
55
56
# Install application files
57
install -dm755 "${pkgdir}/opt/${pkgname}"
58
cp -r "${_appdir}/." "${pkgdir}/opt/${pkgname}/"
59
60
# Version file read by the wrapper scripts: the pkgver part keeps the
61
# ProgramData folder name in sync with pkgver, and the full pkgver-pkgrel
62
# string is used to detect packaging updates and force a re-copy of
63
# ProgramData even when only pkgrel changes
64
echo -n "${pkgver}-${pkgrel}" > "${pkgdir}/opt/${pkgname}/VERSION"
65
66
# Copy Visual C++ runtime DLLs installed by the installer into the app directory
67
# so they are available at runtime without winetricks
68
local _sys32="${srcdir}/wine-prefix/drive_c/windows/system32"
69
while IFS= read -r -d '' _dll; do
70
install -Dm644 "${_dll}" "${pkgdir}/opt/${pkgname}/$(basename "${_dll}")"
71
done < <(find "${_sys32}" \( \
72
-name "mfc140*.dll" \
73
-o -name "mfcm140*.dll" \
74
-o -name "vcruntime140*.dll" \
75
-o -name "concrt140.dll" \
76
-o -name "vcomp140.dll" \
77
\) -print0)
78
79
# Install ProgramData files (read-only app data installed by the installer)
80
local _progdata="${_prefix}/ProgramData/Loxone/Loxone Config ${pkgver}"
81
if [[ -d "${_progdata}" ]]; then
82
install -dm755 "${pkgdir}/opt/${pkgname}/programdata"
83
cp -r "${_progdata}/." "${pkgdir}/opt/${pkgname}/programdata/"
84
fi
85
86
# Extract and install config icon (group_icon 128 is LoxoneConfig's own app icon;
87
# 130 is a document/file-type icon, not the app icon)
88
wrestool -x --type=14 --name=128 -o "${srcdir}/icon.ico" "${_appdir}/LoxoneConfig.exe" 2>/dev/null || true
89
if [[ -f "${srcdir}/icon.ico" ]]; then
90
icotool -x -o "${srcdir}" "${srcdir}/icon.ico" 2>/dev/null || true
91
local _png
92
_png=$(find "${srcdir}" -name "*.png" | sort -t_ -k3 -rn | head -1)
93
if [[ -n "${_png}" ]]; then
94
install -Dm644 "${_png}" "${pkgdir}/usr/share/icons/hicolor/256x256/apps/${pkgname}.png"
95
fi
96
fi
97
98
# Extract and install monitor icon (group_icon 128 is LoxoneMonitor's own app icon;
99
# 130 is a document/file-type icon, not the app icon)
100
wrestool -x --type=14 --name=128 -o "${srcdir}/icon-monitor.ico" "${_appdir}/LoxoneMonitor.exe" 2>/dev/null || true
101
if [[ -f "${srcdir}/icon-monitor.ico" ]]; then
102
install -dm755 "${srcdir}/monitor-icon"
103
icotool -x -o "${srcdir}/monitor-icon" "${srcdir}/icon-monitor.ico" 2>/dev/null || true
104
local _monitor_png
105
_monitor_png=$(find "${srcdir}/monitor-icon" -name "*.png" | sort -t_ -k3 -rn | head -1)
106
if [[ -n "${_monitor_png}" ]]; then
107
install -Dm644 "${_monitor_png}" "${pkgdir}/usr/share/icons/hicolor/256x256/apps/${pkgname}-monitor.png"
108
fi
109
fi
110
111
# Wrapper scripts
112
install -Dm755 "${srcdir}/loxone-config.sh" "${pkgdir}/usr/bin/loxone-config"
113
install -Dm755 "${srcdir}/loxone-monitor.sh" "${pkgdir}/usr/bin/loxone-monitor"
114
115
# Desktop entries
116
install -Dm644 "${srcdir}/loxone-config.desktop" "${pkgdir}/usr/share/applications/loxone-config.desktop"
117
install -Dm644 "${srcdir}/loxone-monitor.desktop" "${pkgdir}/usr/share/applications/loxone-monitor.desktop"
118
}
119
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 |