touchportal-appimage

maintainer Webdo · 2 votes · scanned 2026-08-18 00:03:42.021799
LOW
View on AUR ↗
Why flagged The package downloads a prebuilt AppImage from the official project domain touch-portal.com, which is not on the whitelist but is plausibly legitimate; the AppImage is checksummed and used to extract assets for proper system integration, with no obfuscated code or remote execution beyond standard AppImage use.

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 package downloads a prebuilt AppImage from the official project domain touch-portal.com, which is not on the whitelist but is plausibly legitimate; the AppImage is checksummed and used to extract assets for proper system integration, with no obfuscated code or remote execution beyond standard AppImage use.

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 source_x86_64=("${_appimage}::https://www.touch-portal.com/downloads/releases/linux/TouchPortal.AppImage")

PKGBUILD

1 offending line(s) highlighted
1# Based on the template from https://daveparrish.net/posts/2019-11-16-Better-AppImage-PKGBUILD-template.html
2# Maintainer: Gelmo <gelmo[at]outlook.com>
3
4_pkgname=touchportal
5appname=TouchPortal
6
7pkgname="${_pkgname}"-appimage
8pkgver=4.6.0.2
9pkgrel=1
10pkgdesc="Remote macro control deck for PC and Mac OS for streamers, content creators and other professionals"
11arch=('x86_64')
12url="https://www.touch-portal.com"
13license=('custom')
14depends=('zlib' 'hicolor-icon-theme' 'fuse2')
15options=(!strip)
16_appimage="${appname}-${pkgver}.AppImage"
17source_x86_64=("${_appimage}::https://www.touch-portal.com/downloads/releases/linux/TouchPortal.AppImage")
18noextract=("${_appimage}")
19sha256sums_x86_64=('af0069ef283fd04196b3a4efb0ed4b3c5b3cdcdad21a6cdb5376bed194613343')
20
21prepare() {
22 chmod +x "${_appimage}"
23 ./"${_appimage}" --appimage-extract
24}
25
26build() {
27 # Adjust .desktop so it will work outside of AppImage container
28 sed -i -E "s|Exec=${appname}|Exec=env DESKTOPINTEGRATION=false APPIMAGELAUNCHER_DISABLE=true /usr/bin/${_pkgname}|"\
29 "squashfs-root/${appname}.desktop"
30 # Fix permissions; .AppImage permissions are 700 for all directories
31 chmod -R a-x+rX squashfs-root/usr
32}
33
34package() {
35 # AppImage
36 install -Dm755 "${srcdir}/${_appimage}" "${pkgdir}/opt/${pkgname}/${pkgname}.AppImage"
37
38 # Desktop file
39 install -Dm644 "${srcdir}/squashfs-root/${appname}.desktop"\
40 "${pkgdir}/usr/share/applications/${appname}.desktop"
41
42 # Icon images
43 install -dm755 "${pkgdir}/usr/share/"
44 cp -a "${srcdir}/squashfs-root/usr/share/icons" "${pkgdir}/usr/share/"
45
46 # Symlink executable
47 install -dm755 "${pkgdir}/usr/bin"
48 ln -s "/opt/${pkgname}/${pkgname}.AppImage" "${pkgdir}/usr/bin/${_pkgname}"
49}
50

Changes since previous scan

--- PKGBUILD @ 2026-06-20 16:03
+++ PKGBUILD @ 2026-08-18 00:03
@@ -5,7 +5,7 @@
appname=TouchPortal
pkgname="${_pkgname}"-appimage
-pkgver=4.5.0
+pkgver=4.6.0.2
pkgrel=1
pkgdesc="Remote macro control deck for PC and Mac OS for streamers, content creators and other professionals"
arch=('x86_64')
@@ -16,7 +16,7 @@
_appimage="${appname}-${pkgver}.AppImage"
source_x86_64=("${_appimage}::https://www.touch-portal.com/downloads/releases/linux/TouchPortal.AppImage")
noextract=("${_appimage}")
-sha256sums_x86_64=('1f2cc0f9854aa1d95b474262a701eb2bb86cb41981dbc4ee65b6aaa8b751d1a7')
+sha256sums_x86_64=('af0069ef283fd04196b3a4efb0ed4b3c5b3cdcdad21a6cdb5376bed194613343')
prepare() {
chmod +x "${_appimage}"

Scan history

Scanned at (UTC)SeverityRules
2026-08-18 00:03:42 LOW 2
2026-08-17 00:18:29 LOW 2
2026-08-16 00:03:42 LOW 2
2026-08-15 00:26:13 LOW 2
2026-08-14 00:03:41 LOW 2
2026-08-13 00:17:07 LOW 2
2026-08-12 00:27:08 LOW 2
2026-08-11 17:21:34 MEDIUM 1
2026-06-20 16:03:41 CLEAN 2
2026-06-20 00:50:07 MEDIUM 2
2026-06-20 00:18:46 MEDIUM 2
2026-06-19 23:51:18 MEDIUM 2
2026-06-19 19:07:35 LOW 2
2026-06-19 18:54:17 LOW 2
2026-06-18 16:11:54 MEDIUM 1

Report a package

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

0 / 4000
Your suggestion