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>
2pkgname=loxone-config-bin
3pkgver=17.1.6.30
4pkgrel=2
5pkgdesc="Loxone Config - home automation configuration software (Wine)"
6arch=('x86_64')
7url="https://www.loxone.com"
8license=('LicenseRef-Loxone-Proprietary')
9depends=('wine' 'wine-mono')
10makedepends=('xorg-server-xvfb' 'icoutils')
11options=('!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
16source=(
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)
23sha256sums=('a8d8a32ddc11ccae2988a62333beaf5997d9ba518967a69a2d659cc7f02f3498'
24 '3def05431934b75dbda853eef3ec62659249c0194f7337751946d08de8d5954b'
25 '3ff9c4f99a924d74e3240dba49fbdce737113e1072f9f7aadf6d9fe6c76260b1'
26 'bd0052ac963c24524d2ebe4c3e0955713a4b0faa08439f497f2bb536825d8217'
27 '243f3787f9f42a5136aacad473f7a805cd7e0a8b96016ba73124748328bd45e8')
28
29build() {
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
45package() {
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)SeverityRules
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

Report a package

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

0 / 4000
Your suggestion